Skip to content

Publish

Publish #31

Workflow file for this run

name: Publish
on:
workflow_dispatch:
jobs:
pre_publish:
name: Prepublish
runs-on: ubuntu-latest
if: github.ref == 'refs/heads/main'
steps:
- uses: actions/checkout@v4
- uses: actions/cache@v4
with:
path: |
~/.cargo/registry
~/.cargo/git
key: cargo-build-sbf-${{ hashFiles('**/Cargo.lock') }}
restore-keys: |
cargo-build-sbf-
- name: Get nightly toolchain version
id: nightly
run: echo "version=$(make nightly-version)" >> $GITHUB_OUTPUT
- uses: dtolnay/rust-toolchain@master
with:
toolchain: ${{ steps.nightly.outputs.version }}
components: rustfmt, clippy
- name: Get Solana version
id: solana
run: echo "version=$(make solana-version)" >> $GITHUB_OUTPUT
- uses: metaplex-foundation/actions/install-solana@v1
with:
cache: true
version: ${{ steps.solana.outputs.version }}
- uses: taiki-e/install-action@v2
with:
tool: cargo-hack
- name: Prepublish
shell: bash
run: make prepublish
publish:
name: Publish
runs-on: ubuntu-latest
needs: pre_publish
if: github.ref == 'refs/heads/main'
steps:
- uses: actions/checkout@v4
- uses: actions/cache@v4
with:
path: |
~/.cargo/registry
~/.cargo/git
key: cargo-build-sbf-${{ hashFiles('**/Cargo.lock') }}
restore-keys: |
cargo-build-sbf-
- name: Get Solana version
id: solana
run: echo "version=$(make solana-version)" >> $GITHUB_OUTPUT
- uses: metaplex-foundation/actions/install-solana@v1
with:
cache: true
version: ${{ steps.solana.outputs.version }}
- name: Publish
shell: bash
env:
TOKEN: ${{ secrets.CRATES_IO_TOKEN }}
ARGS: "--locked"
run: make publish