token-cli: Add unreachable pattern for future change (#7446) #5194
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
name: Token Pull Request | |
on: | |
pull_request: | |
paths: | |
- 'associated-token-account/**' | |
- 'token/**' | |
- 'ci/*-version.sh' | |
- '.github/workflows/pull-request-token.yml' | |
- '!token/js/**' | |
push: | |
branches: [master] | |
paths: | |
- 'associated-token-account/**' | |
- 'token/**' | |
- 'ci/*-version.sh' | |
- '.github/workflows/pull-request-token.yml' | |
- '!token/js/**' | |
concurrency: | |
group: ${{ github.workflow }}-${{ github.event.pull_request.number || github.ref }} | |
cancel-in-progress: true | |
jobs: | |
cargo-test-sbf: | |
runs-on: ubuntu-latest | |
steps: | |
- uses: actions/checkout@v4 | |
- name: Remove unneeded packages for more space | |
run: bash ./ci/warning/purge-ubuntu-runner.sh | |
- name: Set env vars | |
run: | | |
source ci/rust-version.sh | |
echo "RUST_STABLE=$rust_stable" >> $GITHUB_ENV | |
source ci/solana-version.sh | |
echo "SOLANA_VERSION=$solana_version" >> $GITHUB_ENV | |
- uses: dtolnay/rust-toolchain@master | |
with: | |
toolchain: ${{ env.RUST_STABLE }} | |
- uses: actions/cache@v4 | |
with: | |
path: | | |
~/.cargo/registry | |
~/.cargo/git | |
key: cargo-build-${{ hashFiles('**/Cargo.lock') }}-${{ env.RUST_STABLE}} | |
- uses: actions/cache@v4 | |
with: | |
path: | | |
~/.cargo/bin/rustfilt | |
key: cargo-sbf-bins-${{ runner.os }} | |
- uses: actions/cache@v4 | |
with: | |
path: ~/.cache/solana | |
key: solana-${{ env.SOLANA_VERSION }} | |
- name: Install dependencies | |
run: | | |
./ci/install-build-deps.sh | |
./ci/install-program-deps.sh | |
echo "$HOME/.local/share/solana/install/active_release/bin" >> $GITHUB_PATH | |
- name: Build and test token | |
run: ./ci/cargo-test-sbf.sh token | |
cargo-test-token-2022-serde: | |
runs-on: ubuntu-latest | |
steps: | |
- uses: actions/checkout@v4 | |
- name: Set env vars | |
run: | | |
source ci/rust-version.sh | |
echo "RUST_STABLE=$rust_stable" >> $GITHUB_ENV | |
source ci/solana-version.sh | |
echo "SOLANA_VERSION=$solana_version" >> $GITHUB_ENV | |
- uses: dtolnay/rust-toolchain@master | |
with: | |
toolchain: ${{ env.RUST_STABLE }} | |
- uses: actions/cache@v4 | |
with: | |
path: | | |
~/.cargo/registry | |
~/.cargo/git | |
key: cargo-build-${{ hashFiles('**/Cargo.lock') }}-${{ env.RUST_STABLE}} | |
- name: Install dependencies | |
run: | | |
./ci/install-build-deps.sh | |
- name: Test token-2022 with "serde" activated | |
run: | | |
cargo test \ | |
--manifest-path=token/program-2022/Cargo.toml \ | |
--features serde-traits \ | |
-- --nocapture | |
cargo-test-sbf-transfer-hook: | |
runs-on: ubuntu-latest | |
steps: | |
- uses: actions/checkout@v4 | |
- name: Set env vars | |
run: | | |
source ci/rust-version.sh | |
echo "RUST_STABLE=$rust_stable" >> $GITHUB_ENV | |
source ci/solana-version.sh | |
echo "SOLANA_VERSION=$solana_version" >> $GITHUB_ENV | |
- uses: dtolnay/rust-toolchain@master | |
with: | |
toolchain: ${{ env.RUST_STABLE }} | |
- uses: actions/cache@v4 | |
with: | |
path: | | |
~/.cargo/registry | |
~/.cargo/git | |
key: cargo-build-${{ hashFiles('**/Cargo.lock') }}-${{ env.RUST_STABLE}} | |
- uses: actions/cache@v4 | |
with: | |
path: | | |
~/.cargo/bin/rustfilt | |
key: cargo-sbf-bins-${{ runner.os }} | |
- uses: actions/cache@v4 | |
with: | |
path: ~/.cache/solana | |
key: solana-${{ env.SOLANA_VERSION }} | |
- name: Install dependencies | |
run: | | |
./ci/install-build-deps.sh | |
./ci/install-program-deps.sh | |
echo "$HOME/.local/share/solana/install/active_release/bin" >> $GITHUB_PATH | |
- name: Build and test transfer hook example | |
run: ./ci/cargo-test-sbf.sh token/transfer-hook/example | |
- name: Upload program | |
uses: actions/upload-artifact@v4 | |
with: | |
name: spl-transfer-hook-example | |
path: "target/deploy/*.so" | |
if-no-files-found: error | |
cargo-test-sbf-associated-token-account: | |
runs-on: ubuntu-latest | |
steps: | |
- uses: actions/checkout@v4 | |
- name: Set env vars | |
run: | | |
source ci/rust-version.sh | |
echo "RUST_STABLE=$rust_stable" >> $GITHUB_ENV | |
source ci/solana-version.sh | |
echo "SOLANA_VERSION=$solana_version" >> $GITHUB_ENV | |
- uses: dtolnay/rust-toolchain@master | |
with: | |
toolchain: ${{ env.RUST_STABLE }} | |
- uses: actions/cache@v4 | |
with: | |
path: | | |
~/.cargo/registry | |
~/.cargo/git | |
key: cargo-build-${{ hashFiles('**/Cargo.lock') }}-${{ env.RUST_STABLE}} | |
- uses: actions/cache@v4 | |
with: | |
path: | | |
~/.cargo/bin/rustfilt | |
key: cargo-sbf-bins-${{ runner.os }} | |
- uses: actions/cache@v4 | |
with: | |
path: ~/.cache/solana | |
key: solana-${{ env.SOLANA_VERSION }} | |
- name: Install dependencies | |
run: | | |
./ci/install-build-deps.sh | |
./ci/install-program-deps.sh | |
echo "$HOME/.local/share/solana/install/active_release/bin" >> $GITHUB_PATH | |
- name: Build and test ATA | |
run: ./ci/cargo-test-sbf.sh associated-token-account | |
cargo-test-sbf-token-2022: | |
runs-on: ubuntu-latest | |
steps: | |
- uses: actions/checkout@v4 | |
- name: Remove unneeded packages for more space | |
run: bash ./ci/warning/purge-ubuntu-runner.sh | |
- name: Set env vars | |
run: | | |
source ci/rust-version.sh | |
echo "RUST_STABLE=$rust_stable" >> $GITHUB_ENV | |
source ci/solana-version.sh | |
echo "SOLANA_VERSION=$solana_version" >> $GITHUB_ENV | |
- uses: dtolnay/rust-toolchain@master | |
with: | |
toolchain: ${{ env.RUST_STABLE }} | |
- uses: actions/cache@v4 | |
with: | |
path: | | |
~/.cargo/registry | |
~/.cargo/git | |
key: cargo-build-${{ hashFiles('**/Cargo.lock') }}-${{ env.RUST_STABLE_VERSION }} | |
- name: Install dependencies | |
run: | | |
./ci/install-build-deps.sh | |
./ci/install-program-deps.sh | |
echo "$HOME/.local/share/solana/install/active_release/bin" >> $GITHUB_PATH | |
- name: Build and test token-2022 | |
run: | | |
cargo build-sbf --manifest-path token/program-2022/Cargo.toml | |
cargo build-sbf --manifest-path instruction-padding/program/Cargo.toml | |
./ci/cargo-test-sbf.sh token/program-2022-test | |
js-test: | |
runs-on: ubuntu-latest | |
env: | |
NODE_VERSION: 16.x | |
steps: | |
- uses: actions/checkout@v4 | |
- name: Use Node.js ${{ env.NODE_VERSION }} | |
uses: actions/setup-node@v4 | |
with: | |
node-version: ${{ env.NODE_VERSION }} | |
- uses: pnpm/action-setup@v4 | |
- uses: actions/cache@v4 | |
with: | |
path: ~/.npm | |
key: node-${{ hashFiles('pnpm-lock.yaml') }} | |
restore-keys: | | |
node- | |
- run: ./ci/js-test-token.sh | |
cargo-build-test-cli: | |
runs-on: ubuntu-latest | |
steps: | |
- uses: actions/checkout@v4 | |
- name: Set env vars | |
run: | | |
source ci/rust-version.sh | |
echo "RUST_STABLE=$rust_stable" >> $GITHUB_ENV | |
source ci/solana-version.sh | |
echo "SOLANA_VERSION=$solana_version" >> $GITHUB_ENV | |
- uses: dtolnay/rust-toolchain@master | |
with: | |
toolchain: ${{ env.RUST_STABLE }} | |
- uses: actions/cache@v4 | |
with: | |
path: | | |
~/.cargo/registry | |
~/.cargo/git | |
key: cargo-build-${{ hashFiles('**/Cargo.lock') }}-${{ env.RUST_STABLE }} | |
- uses: actions/cache@v4 | |
with: | |
path: ~/.cache/solana | |
key: solana-${{ env.SOLANA_VERSION }} | |
- name: Install dependencies | |
run: | | |
./ci/install-build-deps.sh | |
./ci/install-program-deps.sh | |
echo "$HOME/.local/share/solana/install/active_release/bin" >> $GITHUB_PATH | |
- name: Build and test | |
run: | | |
BUILD_DEPENDENT_PROGRAMS=1 cargo build --manifest-path ./token/cli/Cargo.toml | |
cargo test --manifest-path ./token/cli/Cargo.toml | |
cargo-build-test-transfer-hook-cli: | |
runs-on: ubuntu-latest | |
needs: [cargo-test-sbf] | |
steps: | |
- uses: actions/checkout@v4 | |
- name: Set env vars | |
run: | | |
source ci/rust-version.sh | |
echo "RUST_STABLE=$rust_stable" >> $GITHUB_ENV | |
source ci/solana-version.sh | |
echo "SOLANA_VERSION=$solana_version" >> $GITHUB_ENV | |
- uses: dtolnay/rust-toolchain@master | |
with: | |
toolchain: ${{ env.RUST_STABLE }} | |
- uses: actions/cache@v4 | |
with: | |
path: | | |
~/.cargo/registry | |
~/.cargo/git | |
key: cargo-build-${{ hashFiles('**/Cargo.lock') }}-${{ env.RUST_STABLE }} | |
- uses: actions/cache@v4 | |
with: | |
path: ~/.cache/solana | |
key: solana-${{ env.SOLANA_VERSION }} | |
- name: Install dependencies | |
run: | | |
./ci/install-build-deps.sh | |
./ci/install-program-deps.sh | |
echo "$HOME/.local/share/solana/install/active_release/bin" >> $GITHUB_PATH | |
- name: Download spl-transfer-hook-example program | |
uses: actions/download-artifact@v4 | |
with: | |
name: spl-transfer-hook-example | |
path: target/deploy | |
- name: Build and test | |
run: | | |
cargo test --manifest-path ./token/transfer-hook/cli/Cargo.toml |