[Snyk] Security upgrade @solana/web3.js from 1.36.0 to 1.91.3 #8
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: Tests | |
on: | |
push: | |
branches: | |
- master | |
pull_request: | |
branches: | |
- master | |
env: | |
SOLANA_CLI_VERSION: 1.10.29 | |
NODE_VERSION: 17.0.1 | |
jobs: | |
test-core: | |
name: Core Tests | |
runs-on: ubuntu-18.04 | |
timeout-minutes: 30 | |
steps: | |
- uses: actions/checkout@v2 | |
- uses: ./.github/actions/setup/ | |
- uses: actions/setup-node@v2 | |
with: | |
node-version: ${{ env.NODE_VERSION }} | |
- uses: actions/cache@v2 | |
name: Cache Cargo registry + index | |
id: cache-cargo-build | |
with: | |
path: | | |
~/.cargo/bin/ | |
~/.cargo/registry/index/ | |
~/.cargo/registry/cache/ | |
~/.cargo/git/db/ | |
./target/ | |
key: cargo-${{ runner.os }}-cargo-build-${{ hashFiles('**/Cargo.lock') }} | |
- run: cargo build | |
- run: cargo fmt -- --check | |
- run: cargo clippy --all-targets -- -D warnings | |
- run: cargo test | |
# using singlethreaded testing for avm so that tests that change files do not conflict with each other | |
- run: cd avm && cargo fmt -- --check && cargo clippy --all-targets -- -D warnings && cargo test -- --test-threads=1 | |
- run: cd ts && yarn --frozen-lockfile | |
- run: cd ts && yarn test | |
- run: cd ts && yarn lint | |
- run: cd examples/tutorial && yarn --frozen-lockfile | |
- run: cd examples/tutorial && yarn lint | |
- run: cd tests && yarn --frozen-lockfile | |
- run: cd tests && yarn lint | |
- uses: ./.github/actions/git-diff/ | |
setup-anchor-cli: | |
name: Setup Anchor cli | |
runs-on: ubuntu-18.04 | |
timeout-minutes: 30 | |
steps: | |
- uses: actions/checkout@v2 | |
- uses: ./.github/actions/setup/ | |
- uses: actions/cache@v2 | |
name: Cache Cargo registry + index | |
id: cache-anchor | |
with: | |
path: | | |
~/.cargo/bin/ | |
~/.cargo/registry/index/ | |
~/.cargo/registry/cache/ | |
~/.cargo/git/db/ | |
./target/ | |
key: cargo-${{ runner.os }}-anchor-${{ hashFiles('**/Cargo.lock') }} | |
- run: cargo install --path cli anchor-cli --locked --force | |
- run: chmod +x ~/.cargo/bin/anchor | |
- uses: actions/upload-artifact@v2 | |
with: | |
name: anchor-binary | |
path: ~/.cargo/bin/anchor | |
- uses: ./.github/actions/git-diff/ | |
test-examples: | |
needs: setup-anchor-cli | |
name: Examples Test | |
runs-on: ubuntu-18.04 | |
timeout-minutes: 30 | |
steps: | |
- uses: actions/checkout@v2 | |
- uses: actions/download-artifact@v2 | |
with: | |
name: anchor-binary | |
path: ~/.cargo/bin/ | |
- run: chmod +rwx ~/.cargo/bin/anchor | |
- uses: ./.github/actions/setup/ | |
- uses: ./.github/actions/setup-solana/ | |
- uses: ./.github/actions/setup-ts/ | |
- uses: actions/cache@v2 | |
name: basic-0 cache | |
id: cache-basic-0 | |
with: | |
path: ./examples/tutorial/basic-0/target | |
key: cargo-${{ runner.os }}-${{ hashFiles('./examples/tutorial/basic-0/**/Cargo.toml') }}-${{ env.SOLANA_CLI_VERSION }}-${{ hashFiles('**/Cargo.lock') }} | |
- uses: actions/cache@v2 | |
name: basic-1 cache | |
id: cache-basic-1 | |
with: | |
path: ./examples/tutorial/basic-1/target | |
key: cargo-${{ runner.os }}-${{ hashFiles('./examples/tutorial/basic-1/**/Cargo.toml') }}-${{ env.SOLANA_CLI_VERSION }}-${{ hashFiles('**/Cargo.lock') }} | |
- uses: actions/cache@v2 | |
name: basic-2 cache | |
id: cache-basic-2 | |
with: | |
path: ./examples/tutorial/basic-2/target | |
key: cargo-${{ runner.os }}-${{ hashFiles('./examples/tutorial/basic-2/**/Cargo.toml') }}-${{ env.SOLANA_CLI_VERSION }}-${{ hashFiles('**/Cargo.lock') }} | |
- uses: actions/cache@v2 | |
name: basic-3 cache | |
id: cache-basic-3 | |
with: | |
path: ./examples/tutorial/basic-3/target | |
key: cargo-${{ runner.os }}-${{ hashFiles('./examples/tutorial/basic-3/**/Cargo.toml') }}-${{ env.SOLANA_CLI_VERSION }}-${{ hashFiles('**/Cargo.lock') }} | |
- uses: actions/cache@v2 | |
name: basic-4 cache | |
id: cache-basic-4 | |
with: | |
path: ./examples/tutorial/basic-4/target | |
key: cargo-${{ runner.os }}-${{ hashFiles('./examples/tutorial/basic-4/**/Cargo.toml') }}-${{ env.SOLANA_CLI_VERSION }}-${{ hashFiles('**/Cargo.lock') }} | |
- run: cd examples/tutorial && yarn workspaces run test | |
- uses: ./.github/actions/git-diff/ | |
setup-client-example: | |
needs: setup-anchor-cli | |
name: Setup Client Example Test | |
runs-on: ubuntu-18.04 | |
timeout-minutes: 30 | |
strategy: | |
fail-fast: false | |
matrix: | |
node: | |
- path: tests/events/ | |
name: events.so | |
- path: examples/tutorial/basic-4/ | |
name: basic_4.so | |
- path: examples/tutorial/basic-2/ | |
name: basic_2.so | |
- path: tests/composite/ | |
name: composite.so | |
steps: | |
- uses: actions/checkout@v2 | |
- uses: ./.github/actions/setup/ | |
- uses: ./.github/actions/setup-solana/ | |
- uses: actions/download-artifact@v2 | |
with: | |
name: anchor-binary | |
path: ~/.cargo/bin/ | |
- run: chmod +rwx ~/.cargo/bin/anchor | |
- run: cd ${{ matrix.node.path }} && anchor build --skip-lint | |
- uses: actions/upload-artifact@v2 | |
with: | |
name: ${{ matrix.node.name }} | |
path: ${{ matrix.node.path }}target/deploy/${{ matrix.node.name }} | |
- uses: ./.github/actions/git-diff/ | |
test-client-example: | |
needs: setup-client-example | |
name: Client Example Test | |
runs-on: ubuntu-18.04 | |
timeout-minutes: 30 | |
steps: | |
- uses: actions/checkout@v2 | |
- uses: ./.github/actions/setup/ | |
- uses: ./.github/actions/setup-ts/ | |
- uses: actions/download-artifact@v2 | |
with: | |
name: anchor-binary | |
path: ~/.cargo/bin/ | |
- run: chmod +x ~/.cargo/bin/anchor | |
- uses: actions/download-artifact@v2 | |
with: | |
name: events.so | |
path: tests/events/target/deploy/ | |
- uses: actions/download-artifact@v2 | |
with: | |
name: basic_4.so | |
path: examples/tutorial/basic-4/target/deploy/ | |
- uses: actions/download-artifact@v2 | |
with: | |
name: basic_2.so | |
path: examples/tutorial/basic-2/target/deploy/ | |
- uses: actions/download-artifact@v2 | |
with: | |
name: composite.so | |
path: tests/composite/target/deploy/ | |
- uses: actions/cache@v2 | |
name: Cache client/example target | |
id: cache-test-target | |
with: | |
path: client/example/target | |
key: cargo-${{ runner.os }}-client/example-${{ env.ANCHOR_VERSION }}-${{ env.SOLANA_CLI_VERSION }}-${{ hashFiles('**/Cargo.lock') }} | |
- uses: ./.github/actions/setup-solana/ | |
- run: cd client/example && ./run-test.sh | |
- uses: ./.github/actions/git-diff/ | |
test-bpf-upgradeable-state: | |
needs: setup-anchor-cli | |
name: Test tests/bpf-upgradeable-state | |
runs-on: ubuntu-18.04 | |
timeout-minutes: 30 | |
steps: | |
- uses: actions/checkout@v2 | |
- uses: ./.github/actions/setup/ | |
- uses: ./.github/actions/setup-ts/ | |
- uses: ./.github/actions/setup-solana/ | |
- uses: actions/cache@v2 | |
name: Cache Cargo registry + index | |
id: cache-anchor | |
with: | |
path: | | |
~/.cargo/bin/ | |
~/.cargo/registry/index/ | |
~/.cargo/registry/cache/ | |
~/.cargo/git/db/ | |
./target/ | |
key: cargo-${{ runner.os }}-anchor-${{ hashFiles('**/Cargo.lock') }} | |
- uses: actions/download-artifact@v2 | |
with: | |
name: anchor-binary | |
path: ~/.cargo/bin/ | |
- run: chmod +x ~/.cargo/bin/anchor | |
- uses: actions/cache@v2 | |
name: Cache tests/bpf-upgradeable-state target | |
id: cache-test-target | |
with: | |
path: tests/bpf-upgradeable-state/target | |
key: cargo-${{ runner.os }}-tests/bpf-upgradeable-state-${{ env.ANCHOR_VERSION }}-${{ env.SOLANA_CLI_VERSION }}-${{ hashFiles('**/Cargo.lock') }} | |
- run: solana-test-validator -r --quiet & | |
name: start validator | |
- run: cd tests/bpf-upgradeable-state && yarn --frozen-lockfile | |
- run: cd tests/bpf-upgradeable-state | |
- run: cd tests/bpf-upgradeable-state && anchor build --skip-lint | |
- run: cd tests/bpf-upgradeable-state && solana program deploy --program-id program_with_different_programdata.json target/deploy/bpf_upgradeable_state.so | |
- run: cd tests/bpf-upgradeable-state && cp bpf_upgradeable_state-keypair.json target/deploy/bpf_upgradeable_state-keypair.json && anchor test --skip-local-validator --skip-build --skip-lint | |
- run: cd tests/bpf-upgradeable-state && npx tsc --noEmit | |
- uses: ./.github/actions/git-diff/ | |
# this test exists to make sure that anchor | |
# checks rent correctly for legacy accounts | |
# that don't have to be rent-exempt | |
test-misc-non-rent-exempt: | |
# the anchor cli is built with a different solana version | |
# but that's fine since it's just the cli | |
needs: setup-anchor-cli | |
name: Test tests/misc/nonRentExempt | |
runs-on: ubuntu-18.04 | |
timeout-minutes: 30 | |
steps: | |
- uses: actions/checkout@v2 | |
- uses: ./.github/actions/setup/ | |
- uses: ./.github/actions/setup-ts/ | |
- uses: actions/cache@v2 | |
name: Cache Solana Tool Suite | |
id: cache-solana | |
with: | |
path: | | |
~/.cache/solana/ | |
~/.local/share/solana/ | |
key: solana-${{ runner.os }}-v0000-1.8.14 | |
# using an outdated validator but that | |
# is ok as long as the test doesn't | |
# include newer incompatible features | |
- run: sh -c "$(curl -sSfL https://release.solana.com/v1.8.14/install)" | |
shell: bash | |
- run: echo "/home/runner/.local/share/solana/install/active_release/bin" >> $GITHUB_PATH | |
shell: bash | |
- run: solana-keygen new --no-bip39-passphrase | |
shell: bash | |
- run: solana config set --url localhost | |
shell: bash | |
- uses: actions/download-artifact@v2 | |
with: | |
name: anchor-binary | |
path: ~/.cargo/bin/ | |
- run: chmod +x ~/.cargo/bin/anchor | |
- uses: actions/cache@v2 | |
name: Cache tests/misc target | |
id: cache-test-target | |
with: | |
path: tests/misc/target | |
key: cargo-${{ runner.os }}-tests/misc-${{ env.ANCHOR_VERSION }}-1.8.14-${{ hashFiles('**/Cargo.lock') }} | |
- run: cd tests/misc && yarn --frozen-lockfile | |
- run: cd tests/misc | |
- run: cd tests/misc && chmod +x ci.sh && ./ci.sh | |
- run: cd tests/misc && anchor test --skip-lint | |
test-anchor-init: | |
needs: setup-anchor-cli | |
name: Test Anchor Init | |
runs-on: ubuntu-18.04 | |
timeout-minutes: 30 | |
steps: | |
- uses: actions/checkout@v2 | |
- uses: ./.github/actions/setup/ | |
- uses: ./.github/actions/setup-ts/ | |
- uses: ./.github/actions/setup-solana/ | |
- uses: actions/cache@v2 | |
name: Cache Cargo registry + index | |
id: cache-anchor | |
with: | |
path: | | |
~/.cargo/bin/ | |
~/.cargo/registry/index/ | |
~/.cargo/registry/cache/ | |
~/.cargo/git/db/ | |
./target/ | |
key: cargo-${{ runner.os }}-anchor-${{ hashFiles('**/Cargo.lock') }} | |
- uses: actions/download-artifact@v2 | |
with: | |
name: anchor-binary | |
path: ~/.cargo/bin/ | |
- run: chmod +x ~/.cargo/bin/anchor | |
- run: cd "$(mktemp -d)" && anchor init hello-anchor && cd hello-anchor && yarn link @project-serum/anchor && yarn && anchor test && yarn lint:fix | |
- uses: ./.github/actions/git-diff/ | |
test-programs: | |
needs: setup-anchor-cli | |
name: Test ${{ matrix.node.path }} | |
runs-on: ubuntu-18.04 | |
timeout-minutes: 30 | |
strategy: | |
fail-fast: false | |
matrix: | |
node: | |
- cmd: cd tests/sysvars && anchor test --skip-lint | |
path: tests/sysvars | |
- cmd: cd tests/composite && anchor test --skip-lint | |
path: tests/composite | |
- cmd: cd tests/errors && anchor test --skip-lint && npx tsc --noEmit | |
path: tests/errors | |
- cmd: cd tests/spl/token-proxy && anchor test --skip-lint | |
path: spl/token-proxy | |
- cmd: cd tests/multisig && anchor test --skip-lint | |
path: tests/multisig | |
- cmd: cd tests/interface && anchor test --skip-lint | |
path: tests/interface | |
- cmd: cd tests/lockup && anchor test --skip-lint | |
path: tests/lockup | |
- cmd: cd tests/swap/deps/serum-dex/dex && cargo build-bpf -- --locked && cd ../../../ && anchor test --skip-lint | |
path: tests/swap | |
- cmd: cd tests/escrow && anchor test --skip-lint && npx tsc --noEmit | |
path: tests/escrow | |
- cmd: cd tests/pyth && anchor test --skip-lint && npx tsc --noEmit | |
path: tests/pyth | |
- cmd: cd tests/realloc && anchor test --skip-lint && npx tsc --noEmit | |
path: tests/realloc | |
- cmd: cd tests/system-accounts && anchor test --skip-lint | |
path: tests/system-accounts | |
- cmd: cd tests/misc && anchor test --skip-lint && npx tsc --noEmit | |
path: tests/misc | |
- cmd: cd tests/events && anchor test --skip-lint | |
path: tests/events | |
- cmd: cd tests/cashiers-check && anchor test --skip-lint | |
path: tests/cashiers-check | |
- cmd: cd tests/declare-id && anchor test --skip-lint && npx tsc --noEmit | |
path: tests/declare-id | |
- cmd: cd tests/typescript && anchor test --skip-lint && npx tsc --noEmit | |
path: tests/typescript | |
- cmd: cd tests/zero-copy && anchor test --skip-lint && cd programs/zero-copy && cargo test-bpf | |
path: tests/zero-copy | |
- cmd: cd tests/chat && anchor test --skip-lint | |
path: tests/chat | |
- cmd: cd tests/ido-pool && anchor test --skip-lint | |
path: tests/ido-pool | |
- cmd: cd tests/cfo && anchor run test-with-build && cd deps/stake && git checkout Cargo.lock && cd ../swap && git checkout Cargo.lock | |
path: tests/cfo | |
- cmd: cd tests/auction-house && yarn --frozen-lockfile && anchor test --skip-lint && git checkout Cargo.lock | |
path: tests/auction-house | |
- cmd: cd tests/floats && yarn --frozen-lockfile && anchor test --skip-lint && npx tsc --noEmit | |
path: tests/floats | |
- cmd: cd tests/safety-checks && anchor run test | |
path: tests/safety-checks | |
- cmd: cd tests/custom-coder && anchor test --skip-lint && npx tsc --noEmit | |
path: tests/custom-coder | |
- cmd: cd tests/validator-clone && anchor test --skip-lint && npx tsc --noEmit | |
path: tests/validator-clone | |
- cmd: cd tests/cpi-returns && anchor test --skip-lint && npx tsc --noEmit | |
path: tests/cpi-returns | |
- cmd: cd tests/multiple-suites && anchor test --skip-lint && npx tsc --noEmit | |
path: tests/multiple-suites | |
- cmd: cd tests/pda-derivation && anchor test --skip-lint && npx tsc --noEmit | |
path: tests/pda-derivation | |
- cmd: cd tests/anchor-cli-idl && ./test.sh | |
path: tests/anchor-cli-idl | |
steps: | |
- uses: actions/checkout@v2 | |
- uses: ./.github/actions/setup/ | |
- uses: ./.github/actions/setup-ts/ | |
- uses: ./.github/actions/setup-solana/ | |
- uses: actions/cache@v2 | |
name: Cache Cargo registry + index | |
id: cache-anchor | |
with: | |
path: | | |
~/.cargo/bin/ | |
~/.cargo/registry/index/ | |
~/.cargo/registry/cache/ | |
~/.cargo/git/db/ | |
./target/ | |
key: cargo-${{ runner.os }}-anchor-${{ hashFiles('**/Cargo.lock') }} | |
- uses: actions/download-artifact@v2 | |
with: | |
name: anchor-binary | |
path: ~/.cargo/bin/ | |
- run: chmod +x ~/.cargo/bin/anchor | |
- uses: actions/cache@v2 | |
name: Cache ${{ matrix.node.path }} target | |
id: cache-test-target | |
with: | |
path: ${{ matrix.node.path }}/target | |
key: cargo-${{ runner.os }}-${{ matrix.node.path }}-${{ env.ANCHOR_VERSION }}-${{ env.SOLANA_CLI_VERSION }}-${{ hashFiles('**/Cargo.lock') }} | |
- run: ${{ matrix.node.cmd }} | |
name: ${{ matrix.node.path }} program test | |
- uses: ./.github/actions/git-diff/ |