Steward #190
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: Build | |
on: | |
push: | |
branches: | |
- master | |
tags: | |
- "v*" | |
pull_request: | |
branches: | |
- master | |
jobs: | |
security_audit: | |
name: security_audit | |
runs-on: ubuntu-latest | |
steps: | |
- uses: actions/checkout@v4 | |
with: | |
submodules: recursive | |
- name: Install cargo-audit from crates.io | |
uses: baptiste0928/cargo-install@v3 | |
with: | |
crate: cargo-audit | |
- run: cargo audit --ignore RUSTSEC-2022-0093 --ignore RUSTSEC-2023-0065 --ignore RUSTSEC-2024-0336 | |
lint: | |
name: lint | |
runs-on: big-runner-1 | |
steps: | |
- uses: actions/checkout@v4 | |
with: | |
submodules: recursive | |
- uses: actions-rust-lang/setup-rust-toolchain@v1 | |
with: | |
components: rustfmt, clippy | |
toolchain: nightly-2024-02-04 | |
- name: Install cargo-sort from crates.io | |
uses: baptiste0928/cargo-install@v3 | |
with: | |
crate: cargo-sort | |
- run: cargo +nightly-2024-02-04 sort --workspace --check | |
- run: cargo +nightly-2024-02-04 fmt --all --check | |
- run: cargo +nightly-2024-02-04 clippy --all-features --all-targets --tests -- -D warnings | |
udeps: | |
name: udeps | |
runs-on: big-runner-1 | |
steps: | |
- uses: actions/checkout@v4 | |
with: | |
submodules: recursive | |
- uses: actions-rust-lang/setup-rust-toolchain@v1 | |
with: | |
toolchain: nightly-2024-02-04 | |
- name: Install cargo-udeps from crates.io | |
uses: baptiste0928/cargo-install@v3 | |
with: | |
crate: cargo-udeps | |
- run: cargo +nightly-2024-02-04 udeps --all-features --all-targets --tests | |
verified_build: | |
name: verified_build | |
runs-on: big-runner-1 | |
steps: | |
- uses: actions/checkout@v4 | |
with: | |
submodules: recursive | |
- uses: actions-rust-lang/setup-rust-toolchain@v1 | |
- name: Install solana-verify from crates.io | |
uses: baptiste0928/cargo-install@v3 | |
with: | |
crate: solana-verify | |
- name: Install anchor-cli from crates.io | |
uses: baptiste0928/cargo-install@v3 | |
with: | |
crate: anchor-cli | |
version: "0.30.0" | |
- name: install solana toolsuite | |
run: sh -c "$(curl -sSfL https://release.solana.com/v1.18.11/install)" | |
- name: add to path | |
run: echo "/home/runner/.local/share/solana/install/active_release/bin" >> $GITHUB_PATH | |
# build the program and IDL; exit if error | |
- run: anchor build --no-idl --program-name validator_history | |
# - name: Check for diff on IDL | |
# run: git diff --exit-code | |
# run verified build | |
- run: solana-verify build --library-name validator_history | |
# upload the IDL and verified build | |
- name: Upload validator_history.so | |
uses: actions/upload-artifact@v4 | |
with: | |
name: validator_history.so | |
path: target/deploy/validator_history.so | |
# - name: Upload IDL | |
# uses: actions/upload-artifact@v4 | |
# with: | |
# name: validator_history.json | |
# path: programs/validator-history/idl/validator_history.json | |
# tests run on verified build | |
test: | |
name: test | |
runs-on: big-runner-1 | |
needs: | |
- verified_build | |
steps: | |
- uses: actions/checkout@v4 | |
with: | |
submodules: recursive | |
- uses: actions-rust-lang/setup-rust-toolchain@v1 | |
- uses: actions/download-artifact@v4 | |
with: | |
name: validator_history.so | |
path: target/deploy/ | |
- name: cargo test | |
run: cargo test --package tests --test mod validator_history --all-features --color auto | |
shell: bash | |
env: | |
RUST_LOG: trace | |
SBF_OUT_DIR: ${{ github.workspace }}/target/deploy | |
RUST_MIN_STACK: 5000000 | |
# release only runs on tagged commits | |
# it should wait for all the other steps to finish, to ensure releases are the highest quality | |
# after waiting, it will download the verified build and IDL from the verified_build step and release the artifacts | |
release: | |
name: release | |
runs-on: big-runner-1 | |
if: startsWith(github.ref, 'refs/tags/') | |
needs: | |
- security_audit | |
- lint | |
- udeps | |
- verified_build | |
- test | |
steps: | |
- uses: actions/download-artifact@v4 | |
with: | |
name: validator_history.so | |
- uses: actions/download-artifact@v4 | |
with: | |
name: validator_history.json | |
- name: release | |
uses: softprops/action-gh-release@v1 | |
if: startsWith(github.ref, 'refs/tags/') | |
with: | |
files: | | |
validator_history.so | |
validator_history.json |