Skip to content

feat(ampup): add ampup-gen-release-manifest binary #5204

feat(ampup): add ampup-gen-release-manifest binary

feat(ampup): add ampup-gen-release-manifest binary #5204

Workflow file for this run

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