Skip to content

vote: use InvalidAccountData for v0_23_5 vsv deserializing #1764

vote: use InvalidAccountData for v0_23_5 vsv deserializing

vote: use InvalidAccountData for v0_23_5 vsv deserializing #1764

Workflow file for this run

name: Main
on:
push:
branches:
- 'master'
- 'maintenance/**'
pull_request:
branches:
- 'master'
- 'maintenance/**'
jobs:
sanity:
name: Sanity checks
runs-on: ubuntu-latest
steps:
- name: Git Checkout
uses: actions/checkout@v4
with:
fetch-depth: 0 # full history to check for whitespace / conflict markers
- name: Setup Environment
uses: ./.github/actions/setup
with:
stable-toolchain: true
cargo-cache-key: cargo-stable-sanity
cargo-cache-fallback-key: cargo-stable
- name: Check repo is in porcelain state
run: ./scripts/check-porcelain.sh
- name: Check code nits
run: ./scripts/check-nits.sh
- name: Run ShellCheck
run: ./scripts/check-shell.sh
- name: Check doc features
run: ./scripts/check-doc-features.sh
check-crates:
name: Check crate ownership
runs-on: ubuntu-latest
steps:
- name: Git Checkout
uses: actions/checkout@v4
with:
fetch-depth: 0 # full history to check for diff
- name: Setup Environment
uses: ./.github/actions/setup
with:
stable-toolchain: true
cargo-cache-key: cargo-stable-check-crates
cargo-cache-fallback-key: cargo-stable
- name: Install toml-cli
uses: taiki-e/cache-cargo-install-action@v2
with:
tool: toml-cli
- name: Get commit range (push)
if: ${{ github.event_name == 'push' }}
run: |
echo "COMMIT_RANGE=${{ github.event.before }}..$GITHUB_SHA" >> $GITHUB_ENV
- name: Get commit range (pull_request)
if: ${{ github.event_name == 'pull_request' }}
run: |
echo "COMMIT_RANGE=${{ github.event.pull_request.base.sha }}..${{ github.event.pull_request.head.sha }}" >> $GITHUB_ENV
- name: Check crate ownership
run: ./scripts/check-crates.sh
format:
name: Format
runs-on: ubuntu-latest
needs: [sanity]
steps:
- name: Git Checkout
uses: actions/checkout@v4
- name: Setup Environment
uses: ./.github/actions/setup
with:
rustfmt: true
cargo-cache-key: cargo-nightly-fmt
cargo-cache-fallback-key: cargo-nightly
- name: Check formatting
run: ./scripts/check-fmt.sh
clippy:
name: Clippy
needs: [sanity]
strategy:
matrix:
os:
- macos-latest
- windows-latest
- ubuntu-latest
runs-on: ${{ matrix.os }}
steps:
- name: Git Checkout
uses: actions/checkout@v4
- name: Setup Environment
uses: ./.github/actions/setup
with:
clippy: true
cargo-cache-key: cargo-nightly-clippy
cargo-cache-fallback-key: cargo-nightly
# took the workaround from https://github.com/sfackler/rust-openssl/issues/2149
- name: Setup openssl on Windows
if: runner.os == 'Windows'
shell: bash
run: |
echo "PERL=$(which perl)" >> $GITHUB_ENV
echo "OPENSSL_SRC_PERL=$(which perl)" >> $GITHUB_ENV
cat > vcpkg.json <<EOL
{
"dependencies": ["openssl"],
"overrides": [
{
"name": "openssl",
"version": "3.4.1"
}
],
"builtin-baseline": "5ee5eee0d3e9c6098b24d263e9099edcdcef6631"
}
EOL
vcpkg install --triplet x64-windows-static-md
rm vcpkg.json
echo "OPENSSL_LIB_DIR=$GITHUB_WORKSPACE/vcpkg_installed/x64-windows-static-md/lib" >> $GITHUB_ENV
echo "OPENSSL_INCLUDE_DIR=$GITHUB_WORKSPACE/vcpkg_installed/x64-windows-static-md/include" >> $GITHUB_ENV
- name: Run clippy
shell: bash
run: ./scripts/check-clippy.sh
audit:
name: Audit
runs-on: ubuntu-latest
needs: [sanity]
steps:
- name: Git Checkout
uses: actions/checkout@v4
- name: Setup Environment
uses: ./.github/actions/setup
with:
stable-toolchain: true
cargo-cache-key: cargo-audit
- name: Install cargo-audit
uses: taiki-e/cache-cargo-install-action@v2
with:
tool: cargo-audit
- name: Run cargo-audit
run: ./scripts/check-audit.sh
check:
name: Cargo hack check
runs-on: ubuntu-latest
needs: [sanity]
steps:
- name: Git Checkout
uses: actions/checkout@v4
- name: Setup Environment
uses: ./.github/actions/setup
with:
nightly-toolchain: true
cargo-cache-key: cargo-nightly-hack
cargo-cache-fallback-key: cargo-nightly
- name: Install cargo-hack
uses: taiki-e/cache-cargo-install-action@v2
with:
tool: cargo-hack
- name: Run hack check
run: ./scripts/check-hack.sh
powerset:
name: Cargo check powerset
runs-on: ubuntu-latest
needs: [sanity]
steps:
- name: Git Checkout
uses: actions/checkout@v4
- name: Setup Environment
uses: ./.github/actions/setup
with:
nightly-toolchain: true
clippy: true
cargo-cache-key: cargo-nightly-powerset
cargo-cache-fallback-key: cargo-nightly
- name: Install cargo-hack
uses: taiki-e/cache-cargo-install-action@v2
with:
tool: cargo-hack
- name: Check feature powerset
run: ./scripts/check-powerset.sh
msrv:
name: Check minimum supported Rust version
runs-on: ubuntu-latest
needs: [sanity]
steps:
- name: Git Checkout
uses: actions/checkout@v4
- name: Setup Environment
uses: ./.github/actions/setup
with:
minimum-toolchain: true
cargo-cache-key: cargo-minimum-check
cargo-cache-fallback-key: cargo-minimum
- name: Run check
run: ./scripts/check-msrv.sh
minimal-versions:
name: Check minimal-versions
runs-on: ubuntu-latest
needs: [sanity]
steps:
- name: Git Checkout
uses: actions/checkout@v4
- name: Setup Environment
uses: ./.github/actions/setup
with:
nightly-toolchain: true
cargo-cache-key: cargo-nightly-minimal-versions
cargo-cache-fallback-key: cargo-nightly
- name: Install cargo-hack
uses: taiki-e/cache-cargo-install-action@v2
with:
tool: cargo-hack
- name: Install cargo-minimal-versions
uses: taiki-e/cache-cargo-install-action@v2
with:
tool: cargo-minimal-versions
- name: Run minimal-versions check
run: ./scripts/check-minimal-versions.sh
check-crate-order-for-publishing:
name: Check crate dependencies for publishing
runs-on: ubuntu-latest
needs: [sanity]
steps:
- name: Git Checkout
uses: actions/checkout@v4
- name: Check crates for publishing
run: ./scripts/order-crates-for-publishing.py
doc:
name: Cargo hack doc
runs-on: ubuntu-latest
needs: [sanity]
steps:
- name: Git Checkout
uses: actions/checkout@v4
- name: Setup Environment
uses: ./.github/actions/setup
with:
nightly-toolchain: true
cargo-cache-key: cargo-nightly-doc
cargo-cache-fallback-key: cargo-nightly
- name: Install cargo-hack
uses: taiki-e/cache-cargo-install-action@v2
with:
tool: cargo-hack
- name: Run doc check
run: ./scripts/check-doc.sh
sort:
name: Check sorting of crate dependencies
runs-on: ubuntu-latest
needs: [sanity]
steps:
- name: Git Checkout
uses: actions/checkout@v4
- name: Setup Environment
uses: ./.github/actions/setup
with:
nightly-toolchain: true
cargo-cache-key: cargo-nightly-sort
cargo-cache-fallback-key: cargo-nightly
- name: Install cargo-sort
uses: taiki-e/cache-cargo-install-action@v2
with:
tool: cargo-sort
- name: Check toml ordering
run: ./scripts/check-sort.sh
check-dcou:
name: Check declarations of `dev-context-only-utils` feature
runs-on: ubuntu-latest
needs: [sanity]
steps:
- name: Git Checkout
uses: actions/checkout@v4
- name: Setup Environment
uses: ./.github/actions/setup
with:
nightly-toolchain: true
cargo-cache-key: cargo-nightly-dcou
cargo-cache-fallback-key: cargo-nightly
- name: Check dev-context-only-utils declarations
run: ./scripts/check-dev-context-only-utils.sh
build-sbf:
name: Check build-sbf
runs-on: ubuntu-latest
needs: [sanity]
steps:
- name: Git Checkout
uses: actions/checkout@v4
- name: Setup Environment
uses: ./.github/actions/setup
with:
nightly-toolchain: true
cargo-cache-key: cargo-sbf-build
cargo-cache-fallback-key: cargo-sbf
- name: Determine Solana CLI version
run: |
source "./scripts/read-cargo-variable.sh"
solana_version=$(readCargoVariable solana "./Cargo.toml")
echo "SOLANA_VERSION=$solana_version" >> $GITHUB_ENV
- name: Install Solana CLI
uses: solana-program/actions/install-solana@v1
with:
version: ${{ env.SOLANA_VERSION }}
cache: true
- name: Install cargo-hack
uses: taiki-e/cache-cargo-install-action@v2
with:
tool: cargo-hack
- name: Run cargo-build-sbf
run: ./scripts/build-sbf.sh
test-doc:
name: Cargo run doctests
runs-on: ubuntu-latest
needs: [check]
steps:
- name: Git Checkout
uses: actions/checkout@v4
- name: Setup Environment
uses: ./.github/actions/setup
with:
nightly-toolchain: true
cargo-cache-key: cargo-nightly-doc
cargo-cache-fallback-key: cargo-nightly
- name: Install cargo-hack
uses: taiki-e/cache-cargo-install-action@v2
with:
tool: cargo-hack
- name: Run doc tests
run: ./scripts/test-doc.sh
miri:
name: Test miri
runs-on: ubuntu-latest
needs: [check]
steps:
- name: Git Checkout
uses: actions/checkout@v4
- name: Setup Environment
uses: ./.github/actions/setup
with:
miri: true
cargo-cache-key: cargo-nightly-miri
cargo-cache-fallback-key: cargo-nightly
- name: Run miri tests
run: ./scripts/test-miri.sh
frozen-abi:
name: Run frozen-abi tests
runs-on: ubuntu-latest
needs: [check]
steps:
- name: Git Checkout
uses: actions/checkout@v4
- name: Setup Environment
uses: ./.github/actions/setup
with:
nightly-toolchain: true
cargo-cache-key: cargo-nightly-miri
cargo-cache-fallback-key: cargo-nightly
- name: Install cargo-hack
uses: taiki-e/cache-cargo-install-action@v2
with:
tool: cargo-hack
- name: Run frozen-abi tests
run: ./scripts/test-frozen-abi.sh
test-wasm:
name: Build wasm packages and run tests
runs-on: ubuntu-latest
needs: [check]
steps:
- name: Git Checkout
uses: actions/checkout@v4
- name: Setup Node.js
uses: actions/setup-node@v4
with:
node-version: 20
- name: Setup Environment
uses: ./.github/actions/setup
with:
stable-toolchain: true
cargo-cache-key: cargo-stable-wasm
cargo-cache-fallback-key: cargo-stable
- name: Install wasm-pack
uses: taiki-e/cache-cargo-install-action@v2
with:
tool: wasm-pack
- name: Build and test wasm packages
run: ./scripts/test-wasm.sh
test-coverage:
name: Run coverage tests
runs-on: ubuntu-latest
needs: [check]
steps:
- name: Git Checkout
uses: actions/checkout@v4
- name: Setup Environment
uses: ./.github/actions/setup
with:
llvm-tools-preview: true
cargo-cache-key: cargo-nightly-coverage
cargo-cache-fallback-key: cargo-nightly
- name: Install grcov
uses: taiki-e/cache-cargo-install-action@v2
with:
tool: grcov
- name: Run coverage tests
run: ./scripts/test-coverage.sh
test-stable:
name: Run tests on stable toolchain
runs-on: ubuntu-latest
needs: [check]
steps:
- name: Git Checkout
uses: actions/checkout@v4
- name: Setup Environment
uses: ./.github/actions/setup
with:
stable-toolchain: true
cargo-cache-key: cargo-stable-test
cargo-cache-fallback-key: cargo-stable
- name: Run tests
run: ./scripts/test-stable.sh
test-bench:
name: Run benches
runs-on: ubuntu-latest
needs: [check]
steps:
- name: Git Checkout
uses: actions/checkout@v4
- name: Setup Environment
uses: ./.github/actions/setup
with:
nightly-toolchain: true
cargo-cache-key: cargo-nightly-bench
cargo-cache-fallback-key: cargo-nightly
- name: Run benches
run: ./scripts/test-bench.sh
check-no-std:
name: Check no_std build
runs-on: ubuntu-latest
needs: [sanity]
steps:
- name: Git Checkout
uses: actions/checkout@v4
- name: Setup Environment
uses: ./.github/actions/setup
with:
nightly-toolchain: true
rust-src: true
cargo-cache-key: cargo-nightly-no-std
cargo-cache-fallback-key: cargo-nightly
- name: Install cargo-hack
uses: taiki-e/cache-cargo-install-action@v2
with:
tool: cargo-hack
- name: Run check
run: ./scripts/check-no-std.sh