token-client: Make Token
properly Send + Sync
#4630
Workflow file for this run
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@v3 | |
with: | |
path: | | |
~/.cargo/registry | |
~/.cargo/git | |
key: cargo-build-${{ hashFiles('**/Cargo.lock') }}-${{ env.RUST_STABLE}} | |
- uses: actions/cache@v3 | |
with: | |
path: | | |
~/.cargo/bin/rustfilt | |
key: cargo-sbf-bins-${{ runner.os }} | |
- uses: actions/cache@v3 | |
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 | |
- name: Upload programs | |
uses: actions/upload-artifact@v3 | |
with: | |
name: token-programs | |
path: "target/deploy/*.so" | |
if-no-files-found: error | |
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@v3 | |
with: | |
path: | | |
~/.cargo/registry | |
~/.cargo/git | |
key: cargo-build-${{ hashFiles('**/Cargo.lock') }}-${{ env.RUST_STABLE}} | |
- 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@v3 | |
with: | |
path: | | |
~/.cargo/registry | |
~/.cargo/git | |
key: cargo-build-${{ hashFiles('**/Cargo.lock') }}-${{ env.RUST_STABLE}} | |
- uses: actions/cache@v3 | |
with: | |
path: | | |
~/.cargo/bin/rustfilt | |
key: cargo-sbf-bins-${{ runner.os }} | |
- uses: actions/cache@v3 | |
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@v3 | |
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@v3 | |
with: | |
path: | | |
~/.cargo/registry | |
~/.cargo/git | |
key: cargo-build-${{ hashFiles('**/Cargo.lock') }}-${{ env.RUST_STABLE}} | |
- uses: actions/cache@v3 | |
with: | |
path: | | |
~/.cargo/bin/rustfilt | |
key: cargo-sbf-bins-${{ runner.os }} | |
- uses: actions/cache@v3 | |
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 | |
- name: Upload program | |
uses: actions/upload-artifact@v3 | |
with: | |
name: associated-token-account-program | |
path: "target/deploy/*.so" | |
if-no-files-found: error | |
cargo-test-sbf-twoxtx: | |
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: | | |
echo "RUST_STABLE_VERSION=1.72.0" >> $GITHUB_ENV | |
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_VERSION }} | |
- uses: actions/cache@v3 | |
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 twoxtx (TEMPORARY) | |
run: | | |
cargo build-sbf --manifest-path token/program-2022/Cargo.toml | |
cargo build-sbf --manifest-path instruction-padding/program/Cargo.toml | |
./token/twoxtx-setup.sh | |
./token/twoxtx-solana/cargo-test-sbf --manifest-path token/program-2022-test/Cargo.toml -- --nocapture | |
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@v2 | |
with: | |
version: 8 | |
- uses: actions/cache@v3 | |
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@v3 | |
with: | |
path: | | |
~/.cargo/registry | |
~/.cargo/git | |
key: cargo-build-${{ hashFiles('**/Cargo.lock') }}-${{ env.RUST_STABLE }} | |
- uses: actions/cache@v3 | |
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@v3 | |
with: | |
path: | | |
~/.cargo/registry | |
~/.cargo/git | |
key: cargo-build-${{ hashFiles('**/Cargo.lock') }}-${{ env.RUST_STABLE }} | |
- uses: actions/cache@v3 | |
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@v3 | |
with: | |
name: spl-transfer-hook-example | |
path: target/deploy | |
- name: Build and test | |
run: | | |
cargo test --manifest-path ./token/transfer-hook/cli/Cargo.toml |