feat(ampup): add ampup-gen-release-manifest binary #5204
This file contains hidden or 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: CI | |
| on: | |
| push: | |
| branches: [main] | |
| pull_request: | |
| branches: [main] | |
| permissions: | |
| contents: read | |
| concurrency: | |
| cancel-in-progress: true | |
| group: ${{ github.workflow }}-${{ github.ref }} | |
| env: | |
| CARGO_TERM_COLOR: always | |
| RUST_BACKTRACE: full | |
| RUSTFLAGS: "-D warnings" | |
| jobs: | |
| unit-tests: | |
| name: Unit tests | |
| runs-on: namespace-profile-linux-default | |
| timeout-minutes: 10 | |
| steps: | |
| - uses: actions/checkout@8e8c483db84b4bee98b60c0593521ed34d9990e8 # v6 | |
| - name: Setup dependencies | |
| run: | | |
| # Install dependencies | |
| sudo apt-get update | |
| sudo apt-get install -y postgresql | |
| # Add PostgreSQL binaries to PATH | |
| echo "/usr/lib/postgresql/$(pg_lsclusters | awk 'NR==2 {print $1}')/bin" >> $GITHUB_PATH | |
| - uses: actions-rust-lang/setup-rust-toolchain@1780873c7b576612439a134613cc4cc74ce5538c # v1 | |
| with: | |
| cache: true | |
| rustflags: "" | |
| - name: Setup just | |
| uses: extractions/setup-just@e33e0265a09d6d736e2ee1e0eb685ef1de4669ff # v3 | |
| - name: Install cargo-nextest | |
| uses: baptiste0928/cargo-install@b687c656bda5733207e629b50a22bf68974a0305 # v3 | |
| with: | |
| crate: cargo-nextest | |
| version: ^0.9 | |
| - name: Unit tests | |
| run: just test-unit --verbose | |
| env: | |
| SOLANA_MAINNET_HTTP_URL: ${{ secrets.SOLANA_MAINNET_HTTP_URL }} | |
| integration-tests: | |
| name: Integration tests | |
| runs-on: namespace-profile-linux-default | |
| timeout-minutes: 10 | |
| steps: | |
| - uses: actions/checkout@8e8c483db84b4bee98b60c0593521ed34d9990e8 # v6 | |
| with: | |
| submodules: recursive | |
| - name: Install dependencies | |
| run: | | |
| sudo apt-get update | |
| sudo apt-get install -y postgresql | |
| # Add PostgreSQL binaries to PATH | |
| echo "/usr/lib/postgresql/$(pg_lsclusters | awk 'NR==2 {print $1}')/bin" >> $GITHUB_PATH | |
| - name: Install pnpm | |
| uses: pnpm/action-setup@41ff72655975bd51cab0327fa583b6e92b6d3061 # v4 | |
| - name: Use Node.js | |
| uses: actions/setup-node@395ad3262231945c25e8478fd5baf05154b1d79f # v6 | |
| with: | |
| node-version: 24 | |
| cache: pnpm | |
| - name: Setup just | |
| uses: extractions/setup-just@e33e0265a09d6d736e2ee1e0eb685ef1de4669ff # v3 | |
| - name: pnpm install | |
| run: just pnpm-install | |
| - uses: actions-rust-lang/setup-rust-toolchain@1780873c7b576612439a134613cc4cc74ce5538c # v1 | |
| with: | |
| cache: true | |
| rustflags: "" | |
| - name: Setup just | |
| uses: extractions/setup-just@e33e0265a09d6d736e2ee1e0eb685ef1de4669ff # v3 | |
| - name: Install Foundry | |
| uses: foundry-rs/foundry-toolchain@82dee4ba654bd2146511f85f0d013af94670c4de # v1.4 | |
| - name: Install cargo-nextest | |
| uses: baptiste0928/cargo-install@b687c656bda5733207e629b50a22bf68974a0305 # v3 | |
| with: | |
| crate: cargo-nextest | |
| version: ^0.9 | |
| - name: Integration tests | |
| run: just test-it --verbose | |
| env: | |
| FIREHOSE_ETH_MAINNET_URL: ${{ secrets.FIREHOSE_ETH_MAINNET_URL }} | |
| FIREHOSE_ETH_MAINNET_TOKEN: ${{ secrets.FIREHOSE_ETH_MAINNET_TOKEN }} | |
| FIREHOSE_ETH_BASE_URL: ${{ secrets.FIREHOSE_ETH_BASE_URL }} | |
| FIREHOSE_ETH_BASE_TOKEN: ${{ secrets.FIREHOSE_ETH_MAINNET_TOKEN }} # Token is the same for both networks | |
| RPC_ETH_MAINNET_URL: ${{ secrets.RPC_ETH_MAINNET_URL }} | |
| RPC_ETH_BASE_URL: ${{ secrets.RPC_ETH_BASE_URL }} | |
| BEACON_ETH_MAINNET_URL: ${{ secrets.BEACON_ETH_MAINNET_URL }} | |
| ampup-tests: | |
| name: Test ampup | |
| runs-on: ubuntu-latest | |
| timeout-minutes: 10 | |
| steps: | |
| - uses: actions/checkout@8e8c483db84b4bee98b60c0593521ed34d9990e8 # v6 | |
| - uses: actions-rust-lang/setup-rust-toolchain@1780873c7b576612439a134613cc4cc74ce5538c # v1 | |
| with: | |
| cache: true | |
| rustflags: "" | |
| - name: Setup just | |
| uses: extractions/setup-just@e33e0265a09d6d736e2ee1e0eb685ef1de4669ff # v3 | |
| - name: Install cargo-nextest | |
| uses: baptiste0928/cargo-install@b687c656bda5733207e629b50a22bf68974a0305 # v3 | |
| with: | |
| crate: cargo-nextest | |
| version: ^0.9 | |
| - name: Run ampup tests | |
| run: just test-ampup --verbose | |
| env: | |
| GITHUB_TOKEN: ${{ github.token }} | |
| rustfmt: | |
| name: Check rustfmt style | |
| runs-on: ubuntu-latest | |
| timeout-minutes: 10 | |
| steps: | |
| - uses: actions/checkout@8e8c483db84b4bee98b60c0593521ed34d9990e8 # v6 | |
| - name: Setup Rust toolchain | |
| uses: actions-rust-lang/setup-rust-toolchain@1780873c7b576612439a134613cc4cc74ce5538c # v1 | |
| with: | |
| toolchain: nightly # Required for unstable features (see `rustfmt.toml` for details) | |
| components: rustfmt | |
| cache: true | |
| rustflags: "" | |
| - name: Setup just | |
| uses: extractions/setup-just@e33e0265a09d6d736e2ee1e0eb685ef1de4669ff # v3 | |
| - name: Check formatting | |
| run: just fmt-rs-check | |
| release-check: | |
| name: Build in release mode | |
| runs-on: namespace-profile-linux-default | |
| timeout-minutes: 10 | |
| steps: | |
| - uses: actions/checkout@8e8c483db84b4bee98b60c0593521ed34d9990e8 # v6 | |
| - uses: actions-rust-lang/setup-rust-toolchain@1780873c7b576612439a134613cc4cc74ce5538c # v1 | |
| with: | |
| cache: true | |
| rustflags: "" | |
| - name: Setup just | |
| uses: extractions/setup-just@e33e0265a09d6d736e2ee1e0eb685ef1de4669ff # v3 | |
| - name: Cargo check (release) | |
| run: just check-rs --release --all-features | |
| - name: Run clippy (release) | |
| run: just clippy --release --all-features | |
| typescript: | |
| name: TypeScript code style & types | |
| runs-on: ubuntu-latest | |
| timeout-minutes: 10 | |
| steps: | |
| - uses: actions/checkout@8e8c483db84b4bee98b60c0593521ed34d9990e8 # v6 | |
| - name: Install pnpm | |
| uses: pnpm/action-setup@41ff72655975bd51cab0327fa583b6e92b6d3061 # v4 | |
| - name: Install dependencies | |
| working-directory: typescript | |
| run: pnpm install | |
| - name: Setup just | |
| uses: extractions/setup-just@e33e0265a09d6d736e2ee1e0eb685ef1de4669ff # v3 | |
| - name: Check formatting | |
| run: just fmt-ts-check | |
| - name: Check types | |
| run: just check-ts | |
| # Check generated code is up to date | |
| gen-check: | |
| name: Check codegen | |
| runs-on: namespace-profile-linux-default | |
| timeout-minutes: 10 | |
| steps: | |
| - uses: actions/checkout@8e8c483db84b4bee98b60c0593521ed34d9990e8 # v6 | |
| - name: Install dependencies | |
| run: | | |
| sudo apt-get update | |
| sudo apt-get install -y protobuf-compiler | |
| - uses: actions-rust-lang/setup-rust-toolchain@1780873c7b576612439a134613cc4cc74ce5538c # v1 | |
| with: | |
| cache: true | |
| rustflags: "" | |
| - name: Setup just | |
| uses: extractions/setup-just@e33e0265a09d6d736e2ee1e0eb685ef1de4669ff # v3 | |
| - name: Run code generation | |
| run: just gen | |
| - name: Check for uncommitted changes | |
| run: | | |
| if [ -n "$(git status --porcelain)" ]; then | |
| printf "Generated code is out of date. Please run 'just gen' and commit the changes.\n" | |
| printf "\nFiles with changes:\n" | |
| git status --porcelain | |
| printf "\nDetailed diff:\n" | |
| git diff --color=always | |
| exit 1 | |
| fi |