Skip to content

Draft

Draft #9847

name: Build and Test
on:
push:
branches:
- main
# Run in PRs with conflicts (https://docs.github.com/en/actions/using-workflows/events-that-trigger-workflows#pull_request)
pull_request_target:
branches:
- main
types: [opened, synchronize, reopened]
workflow_dispatch:
concurrency:
group: ${{ github.workflow }}-${{ github.event.pull_request.number }}
cancel-in-progress: true
permissions:
id-token: write
contents: read
packages: read
env:
SCCACHE_S3_USE_SSL: ${{ secrets.CACHE_SSL }}
GIT_LFS_SKIP_SMUDGE: 1
CARGO_INCREMENTAL: 0
RUST_BACKTRACE: full
SCCACHE_BUCKET: namada-cache
SCCACHE_ENDPOINT: ${{ secrets.CACHE_ENDPOINT }}
AWS_ACCESS_KEY_ID: ${{ secrets.CACHE_ACCESS_KEY }}
AWS_SECRET_ACCESS_KEY: ${{ secrets.CACHE_SECRET_KEY }}
AWS_REGION: us-east-1
jobs:
build-wasm:
timeout-minutes: 30
runs-on:
group: namada-runners
labels: ubuntu-22-small
container:
image: ghcr.io/anoma/namada:wasm-main
strategy:
fail-fast: false
matrix:
os: [ubuntu-latest]
wasm_cache_version: ["v2"]
mold_version: [2.4.0]
steps:
- name: Checkout repo
uses: actions/checkout@v4
if: ${{ github.event_name != 'pull_request_target' }}
- name: Checkout PR
uses: actions/checkout@v4
if: ${{ github.event_name == 'pull_request_target' }}
# From https://docs.github.com/en/actions/using-workflows/events-that-trigger-workflows#pull_request_target:
# "This event runs in the context of the base of the pull request,
# rather than in the context of the merge commit, as the pull_request
# event does."
# We set the ref to the head commit of the PR instead.
# For this, we have to make sure that we're not running CI on untrusted
# code (more info in the link above), so the repo MUST be configured
# to disallow that.
with:
ref: ${{ github.event.pull_request.head.sha }}
- name: Cache cargo registry
uses: actions/cache@v3
continue-on-error: false
with:
path: |
~/.cargo/registry/index/
~/.cargo/registry/cache/
~/.cargo/git/db/
target
wasm/wasm_source/target
key: ${{ runner.os }}-${{ github.job }}-wasm-${{ hashFiles('**/Cargo.lock') }}
restore-keys: ${{ runner.os }}-wasm-
- name: Build WASM
run: make build-wasm-scripts
- name: Upload wasm artifacts (github)
uses: actions/upload-artifact@v3
with:
name: wasm-${{ github.event.pull_request.head.sha || github.sha }}
path: |
wasm/tx_*.wasm
wasm/vp_*.wasm
wasm/checksums.json
- name: Clean cargo cache
run: |
cargo install cargo-cache --no-default-features --features ci-autoclean cargo-cache
cargo-cache
test-wasm:
timeout-minutes: 30
runs-on:
group: namada-runners
labels: ubuntu-22-small
needs: [build-wasm]
container:
image: ghcr.io/anoma/namada:wasm-main
strategy:
fail-fast: false
matrix:
os: [ubuntu-latest]
wasm_cache_version: ["v2"]
nightly_version: [nightly-2024-05-15]
mold_version: [2.4.0]
steps:
- name: Checkout repo
uses: actions/checkout@v4
if: ${{ github.event_name != 'pull_request_target' }}
- name: Checkout PR
uses: actions/checkout@v4
if: ${{ github.event_name == 'pull_request_target' }}
with:
ref: ${{ github.event.pull_request.head.sha }}
- name: Duplicate checksums file
run: cp wasm/checksums.json wasm/original-checksums.json
- name: Install mold linker
run: |
wget -q -O- https://github.com/rui314/mold/releases/download/v${{ matrix.mold_version }}/mold-${{ matrix.mold_version }}-x86_64-linux.tar.gz | tar -xz
mv mold-${{ matrix.mold_version }}-x86_64-linux/bin/mold /usr/local/bin
- name: Download wasm artifacts
uses: actions/download-artifact@v3
with:
name: wasm-${{ github.event.pull_request.head.sha|| github.sha }}
path: ./wasm
env:
RUSTFLAGS: "-C linker=clang -C link-arg=-fuse-ld=/usr/local/bin/mold"
- name: Setup rust nightly
uses: oxidecomputer/actions-rs_toolchain@ad3f86084a8a5acf2c09cb691421b31cf8af7a36
with:
toolchain: ${{ matrix.nightly_version }}
profile: default
- name: Cache cargo registry
uses: actions/cache@v3
continue-on-error: false
with:
path: |
~/.cargo/registry/index/
~/.cargo/registry/cache/
~/.cargo/git/db/
target
wasm/wasm_source/target
key: ${{ runner.os }}-${{ github.job }}-wasm-${{ hashFiles('**/Cargo.lock') }}
restore-keys: ${{ runner.os }}-wasm-
- name: Test Wasm
run: make test-wasm
- name: Check wasm up-to-date
run: cmp -- wasm/checksums.json wasm/original-checksums.json
- name: Print diff
if: failure()
run: diff -y -W 150 wasm/checksums.json wasm/original-checksums.json --suppress-common-lines
- name: Clean cargo cache
run: |
cargo install cargo-cache --no-default-features --features ci-autoclean cargo-cache
cargo-cache
upload-wasm:
timeout-minutes: 5
runs-on: ${{ matrix.os }}
needs: [build-wasm]
strategy:
fail-fast: false
matrix:
os: [ubuntu-latest]
wasm_cache_version: ["v2"]
nightly_version: [nightly-2024-05-15]
mold_version: [2.4.0]
steps:
- name: Download wasm artifacts
uses: actions/download-artifact@v3
with:
name: wasm-${{ github.event.pull_request.head.sha|| github.sha }}
path: ./wasm
- name: Upload wasm artifacts (minio)
run: |
unset AWS_SESSION_TOKEN
aws --endpoint-url $S3_ENDPOINT_URL s3 sync wasm s3:https://$BUCKET_NAME --acl public-read --exclude "*" --include "*.wasm" --exclude "*/*" --region $AWS_REGION
aws --endpoint-url $S3_ENDPOINT_URL s3 cp wasm/checksums.json s3:https://$BUCKET_NAME/checksums.${{ github.event.pull_request.number || github.event.pull_request.head.sha || github.sha }}.json --acl public-read --region $AWS_REGION
env:
BUCKET_NAME: namada-wasm
AWS_REGION: us-east-1
S3_ENDPOINT_URL: https://minio.heliax.click
AWS_ACCESS_KEY_ID: ${{ secrets.MINIO_ACCESS_KEY }}
AWS_SECRET_ACCESS_KEY: ${{ secrets.MINIO_SECRET_KEY }}
test-unit:
runs-on:
group: namada-runners
labels: ubuntu-22
timeout-minutes: 30
needs: [build-wasm]
strategy:
fail-fast: false
matrix:
os: [ubuntu-latest]
nightly_version: [nightly-2024-05-15]
mold_version: [2.4.0]
make:
- name: ABCI
env:
RUSTC_WRAPPER: sccache
steps:
- name: Checkout repo
uses: actions/checkout@v4
if: ${{ github.event_name != 'pull_request_target' }}
- name: Checkout PR
uses: actions/checkout@v4
if: ${{ github.event_name == 'pull_request_target' }}
# See comment in build-and-test.yml
with:
ref: ${{ github.event.pull_request.head.sha }}
- name: Install libudev
run: sudo apt-get update && sudo apt-get -y install libudev-dev
- name: Install Protoc
uses: heliaxdev/setup-protoc@v2
with:
version: "25.0"
repo-token: ${{ secrets.GITHUB_TOKEN }}
- name: Run sccache-cache
uses: mozilla-actions/[email protected]
with:
version: "v0.7.7"
- name: Setup rust toolchain
uses: oxidecomputer/actions-rs_toolchain@ad3f86084a8a5acf2c09cb691421b31cf8af7a36
with:
profile: default
override: true
- name: Setup rust nightly
uses: oxidecomputer/actions-rs_toolchain@ad3f86084a8a5acf2c09cb691421b31cf8af7a36
with:
toolchain: ${{ matrix.nightly_version }}
profile: default
- name: Cache cargo registry
uses: actions/cache@v3
continue-on-error: false
with:
path: |
~/.cargo/registry/index/
~/.cargo/registry/cache/
~/.cargo/git/db/
key: ${{ runner.os }}-${{ github.job }}-cargo-${{ hashFiles('**/Cargo.lock') }}
restore-keys: ${{ runner.os }}-cargo-
- name: Start sccache server
run: sccache --start-server
- name: Install mold linker
run: |
wget -q -O- https://github.com/rui314/mold/releases/download/v${{ matrix.mold_version }}/mold-${{ matrix.mold_version }}-x86_64-linux.tar.gz | tar -xz
mv mold-${{ matrix.mold_version }}-x86_64-linux/bin/mold /usr/local/bin
- name: Download MASP parameters
run: |
mkdir -p /home/runner/.masp-params
curl -o /home/runner/.masp-params/masp-spend.params -L https://github.com/anoma/masp-mpc/releases/download/namada-trusted-setup/masp-spend.params\?raw\=true
curl -o /home/runner/.masp-params/masp-output.params -L https://github.com/anoma/masp-mpc/releases/download/namada-trusted-setup/masp-output.params?raw=true
curl -o /home/runner/.masp-params/masp-convert.params -L https://github.com/anoma/masp-mpc/releases/download/namada-trusted-setup/masp-convert.params?raw=true
- name: Download wasm artifacts
uses: actions/download-artifact@v3
with:
name: wasm-${{ github.event.pull_request.head.sha|| github.sha }}
path: ./wasm
- uses: taiki-e/install-action@cargo-llvm-cov
- name: Check crates build with default features
run: make check-crates
- name: Run unit tests
run: make test-unit-with-coverage
env:
NAMADA_MASP_PARAMS_DIR: /home/runner/.masp-params
RUSTFLAGS: "-C linker=clang -C link-arg=-fuse-ld=/usr/local/bin/mold"
- name: Upload coverage
uses: codecov/codecov-action@v4
with:
fail_ci_if_error: true
files: lcov.info
verbose: true
env:
CODECOV_TOKEN: ${{ secrets.CODECOV_TOKEN }}
- name: Print sccache stats
if: always()
run: sccache --show-stats || true
- name: Stop sccache server
if: always()
run: sccache --stop-server || true
- name: Clean cargo cache
run: |
cargo install cargo-cache --no-default-features --features ci-autoclean cargo-cache
cargo-cache
test-integration:
runs-on:
group: namada-runners
labels: ubuntu-22-small
timeout-minutes: 30
needs: [build-wasm]
strategy:
fail-fast: false
matrix:
os: [ubuntu-latest]
nightly_version: [nightly-2024-05-15]
mold_version: [2.4.0]
make:
- name: ABCI
env:
RUSTC_WRAPPER: sccache
steps:
- name: Checkout repo
uses: actions/checkout@v4
if: ${{ github.event_name != 'pull_request_target' }}
- name: Checkout PR
uses: actions/checkout@v4
if: ${{ github.event_name == 'pull_request_target' }}
# See comment in build-and-test.yml
with:
ref: ${{ github.event.pull_request.head.sha }}
- name: Install libudev
run: sudo apt-get update && sudo apt-get -y install libudev-dev
- name: Install Protoc
uses: heliaxdev/setup-protoc@v2
with:
version: "25.0"
repo-token: ${{ secrets.GITHUB_TOKEN }}
- name: Run sccache-cache
uses: mozilla-actions/[email protected]
with:
version: "v0.7.7"
- name: Setup rust toolchain
uses: oxidecomputer/actions-rs_toolchain@ad3f86084a8a5acf2c09cb691421b31cf8af7a36
with:
profile: default
override: true
- name: Setup rust nightly
uses: oxidecomputer/actions-rs_toolchain@ad3f86084a8a5acf2c09cb691421b31cf8af7a36
with:
toolchain: ${{ matrix.nightly_version }}
profile: default
- name: Cache cargo registry
uses: actions/cache@v3
continue-on-error: false
with:
path: |
~/.cargo/registry/index/
~/.cargo/registry/cache/
~/.cargo/git/db/
key: ${{ runner.os }}-${{ github.job }}-cargo-${{ hashFiles('**/Cargo.lock') }}
restore-keys: ${{ runner.os }}-cargo-
- name: Start sccache server
run: sccache --start-server
- name: Install mold linker
run: |
wget -q -O- https://github.com/rui314/mold/releases/download/v${{ matrix.mold_version }}/mold-${{ matrix.mold_version }}-x86_64-linux.tar.gz | tar -xz
mv mold-${{ matrix.mold_version }}-x86_64-linux/bin/mold /usr/local/bin
- name: Download MASP parameters
run: |
mkdir -p /home/runner/.masp-params
curl -o /home/runner/.masp-params/masp-spend.params -L https://github.com/anoma/masp-mpc/releases/download/namada-trusted-setup/masp-spend.params\?raw\=true
curl -o /home/runner/.masp-params/masp-output.params -L https://github.com/anoma/masp-mpc/releases/download/namada-trusted-setup/masp-output.params?raw=true
curl -o /home/runner/.masp-params/masp-convert.params -L https://github.com/anoma/masp-mpc/releases/download/namada-trusted-setup/masp-convert.params?raw=true
- name: Download wasm artifacts
uses: actions/download-artifact@v3
with:
name: wasm-${{ github.event.pull_request.head.sha|| github.sha }}
path: ./wasm
- name: Run integration tests
run: make test-integration
env:
NAMADA_MASP_PARAMS_DIR: /home/runner/.masp-params
RUSTFLAGS: "-C linker=clang -C link-arg=-fuse-ld=/usr/local/bin/mold"
- name: Print sccache stats
if: always()
run: sccache --show-stats || true
- name: Stop sccache server
if: always()
run: sccache --stop-server || true
- name: Clean cargo cache
run: |
cargo install cargo-cache --no-default-features --features ci-autoclean cargo-cache
cargo-cache
run-benchmarks:
runs-on:
group: namada-runners
labels: ubuntu-22
timeout-minutes: 60
needs: [build-wasm]
strategy:
fail-fast: false
matrix:
os: [ubuntu-latest]
nightly_version: [nightly-2024-05-15]
mold_version: [2.4.0]
make:
- name: ABCI
env:
RUSTC_WRAPPER: sccache
steps:
- name: Checkout repo
uses: actions/checkout@v4
if: ${{ github.event_name != 'pull_request_target' }}
- name: Checkout PR
uses: actions/checkout@v4
if: ${{ github.event_name == 'pull_request_target' }}
# See comment in build-and-test.yml
with:
ref: ${{ github.event.pull_request.head.sha }}
- name: Install libudev
run: sudo apt-get update && sudo apt-get -y install libudev-dev
- name: Install Protoc
uses: heliaxdev/setup-protoc@v2
with:
version: "25.0"
repo-token: ${{ secrets.GITHUB_TOKEN }}
- name: Run sccache-cache
uses: mozilla-actions/[email protected]
with:
version: "v0.7.7"
- name: Setup rust toolchain
uses: oxidecomputer/actions-rs_toolchain@ad3f86084a8a5acf2c09cb691421b31cf8af7a36
with:
profile: default
override: true
- name: Setup rust nightly
uses: oxidecomputer/actions-rs_toolchain@ad3f86084a8a5acf2c09cb691421b31cf8af7a36
with:
toolchain: ${{ matrix.nightly_version }}
profile: default
- name: Cache cargo registry
uses: actions/cache@v3
continue-on-error: false
with:
path: |
~/.cargo/registry/index/
~/.cargo/registry/cache/
~/.cargo/git/db/
key: ${{ runner.os }}-${{ github.job }}-cargo-${{ hashFiles('**/Cargo.lock') }}
restore-keys: ${{ runner.os }}-cargo-
- name: Start sccache server
run: sccache --start-server
- name: Install mold linker
run: |
wget -q -O- https://github.com/rui314/mold/releases/download/v${{ matrix.mold_version }}/mold-${{ matrix.mold_version }}-x86_64-linux.tar.gz | tar -xz
mv mold-${{ matrix.mold_version }}-x86_64-linux/bin/mold /usr/local/bin
- name: Download MASP parameters
run: |
mkdir -p /home/runner/.masp-params
curl -o /home/runner/.masp-params/masp-spend.params -L https://github.com/anoma/masp-mpc/releases/download/namada-trusted-setup/masp-spend.params\?raw\=true
curl -o /home/runner/.masp-params/masp-output.params -L https://github.com/anoma/masp-mpc/releases/download/namada-trusted-setup/masp-output.params?raw=true
curl -o /home/runner/.masp-params/masp-convert.params -L https://github.com/anoma/masp-mpc/releases/download/namada-trusted-setup/masp-convert.params?raw=true
- name: Download wasm artifacts
uses: actions/download-artifact@v3
with:
name: wasm-${{ github.event.pull_request.head.sha|| github.sha }}
path: ./wasm
- name: Run benchmarks tests
run: make test-benches
env:
RUSTFLAGS: "-C linker=clang -C link-arg=-fuse-ld=/usr/local/bin/mold"
- name: Print sccache stats
if: always()
run: sccache --show-stats || true
- name: Stop sccache server
if: always()
run: sccache --stop-server || true
- name: Clean cargo cache
run: |
cargo install cargo-cache --no-default-features --features ci-autoclean cargo-cache
cargo-cache
namada-release:
runs-on:
group: namada-runners
labels: ubuntu-22-big
timeout-minutes: 40
strategy:
fail-fast: false
matrix:
os: [ubuntu-latest]
mold_version: [2.4.0]
make:
- name: ABCI Release build
env:
RUSTC_WRAPPER: sccache
steps:
- name: Checkout repo
uses: actions/checkout@v4
if: ${{ github.event_name != 'pull_request_target' }}
- name: Checkout PR
uses: actions/checkout@v4
if: ${{ github.event_name == 'pull_request_target' }}
# See comment in build-and-test.yml
with:
ref: ${{ github.event.pull_request.head.sha }}
- name: Install libudev
run: sudo apt-get update && sudo apt-get -y install libudev-dev
- name: Install Protoc
uses: heliaxdev/setup-protoc@v2
with:
version: "25.0"
repo-token: ${{ secrets.GITHUB_TOKEN }}
- name: Run sccache-cache
uses: mozilla-actions/[email protected]
with:
version: "v0.7.7"
- name: Setup rust toolchain
uses: oxidecomputer/actions-rs_toolchain@ad3f86084a8a5acf2c09cb691421b31cf8af7a36
with:
profile: default
override: true
- name: Cache cargo registry
uses: actions/cache@v3
continue-on-error: false
with:
path: |
~/.cargo/registry/index/
~/.cargo/registry/cache/
~/.cargo/git/db/
key: ${{ runner.os }}-${{ github.job }}-cargo-${{ hashFiles('**/Cargo.lock') }}
restore-keys: ${{ runner.os }}-cargo-
- name: Install mold linker
run: |
wget -q -O- https://github.com/rui314/mold/releases/download/v${{ matrix.mold_version }}/mold-${{ matrix.mold_version }}-x86_64-linux.tar.gz | tar -xz
mv mold-${{ matrix.mold_version }}-x86_64-linux/bin/mold /usr/local/bin
- name: Start sccache server
run: sccache --start-server
- name: Build
run: make build-release
env:
RUSTFLAGS: "-C linker=clang -C debug_assertions=true -C link-arg=-fuse-ld=/usr/local/bin/mold"
- name: Upload target binaries (github)
uses: actions/upload-artifact@v3
with:
name: binaries-${{ github.event.pull_request.head.sha || github.sha }}
path: |
target/release/namada
target/release/namadac
target/release/namadaw
target/release/namadan
target/release/namadar
- name: Upload namada binaries (minio)
run: |
unset AWS_SESSION_TOKEN
zip -9 $ZIP_FILENAME target/release/namada target/release/namadac target/release/namadaw target/release/namadan target/release/namadar
aws --endpoint-url $S3_ENDPOINT_URL s3 cp $ZIP_FILENAME s3:https://$BUCKET_NAME --region $AWS_REGION
env:
BUCKET_NAME: namada-binaries
AWS_REGION: us-east-1
S3_ENDPOINT_URL: https://minio.heliax.click
ZIP_FILENAME: binaries-${{ github.event.pull_request.number || github.event.pull_request.head.sha || github.sha }}.zip
AWS_ACCESS_KEY_ID: ${{ secrets.MINIO_ACCESS_KEY }}
AWS_SECRET_ACCESS_KEY: ${{ secrets.MINIO_SECRET_KEY }}
- name: Upload build timing report
if: always()
uses: actions/upload-artifact@v3
with:
name: build-timings-${{ github.event.pull_request.head.sha || github.sha }}
path: target/cargo-timings/cargo-timing.html
retention-days: 3
- name: Print sccache stats
if: always()
run: sccache --show-stats || true
- name: Stop sccache server
if: always()
run: sccache --stop-server || true
- name: Clean cargo cache
run: |
cargo install cargo-cache --no-default-features --features ci-autoclean cargo-cache
cargo-cache
namada-e2e:
runs-on:
group: namada-runners
labels: ubuntu-22
needs: [build-wasm, namada-release]
# timeout-minutes: 80
strategy:
fail-fast: false
matrix:
os: [ubuntu-latest]
nightly_version: [nightly-2024-05-15]
mold_version: [2.4.0]
comet_bft: [0.37.2]
make:
- index: 0
- index: 1
- index: 2
- index: 3
- index: 4
- index: 5
env:
RUSTC_WRAPPER: sccache
steps:
- name: Checkout repo
uses: actions/checkout@v4
if: ${{ github.event_name != 'pull_request_target' }}
- name: Checkout PR
uses: actions/checkout@v4
if: ${{ github.event_name == 'pull_request_target' }}
# See comment in build-and-test.yml
with:
ref: ${{ github.event.pull_request.head.sha }}
- name: Install libudev
run: sudo apt-get update && sudo apt-get -y install libudev-dev
- name: Install Protoc
uses: heliaxdev/setup-protoc@v2
with:
version: "25.0"
repo-token: ${{ secrets.GITHUB_TOKEN }}
- name: Run sccache-cache
uses: mozilla-actions/[email protected]
with:
version: "v0.7.7"
- name: Setup rust toolchain
uses: oxidecomputer/actions-rs_toolchain@ad3f86084a8a5acf2c09cb691421b31cf8af7a36
with:
profile: default
override: true
- name: Setup rust nightly
uses: oxidecomputer/actions-rs_toolchain@ad3f86084a8a5acf2c09cb691421b31cf8af7a36
with:
toolchain: ${{ matrix.nightly_version }}
profile: default
- name: Cache cargo registry
uses: actions/cache@v3
continue-on-error: false
with:
path: |
~/.cargo/registry/index/
~/.cargo/registry/cache/
~/.cargo/git/db/
key: ${{ runner.os }}-${{ github.job }}-cargo-${{ hashFiles('**/Cargo.lock') }}
restore-keys: ${{ runner.os }}-cargo-
- name: Start sccache server
run: sccache --start-server
- name: Install mold linker
run: |
wget -q -O- https://github.com/rui314/mold/releases/download/v${{ matrix.mold_version }}/mold-${{ matrix.mold_version }}-x86_64-linux.tar.gz | tar -xz
mv mold-${{ matrix.mold_version }}-x86_64-linux/bin/mold /usr/local/bin
- name: Download MASP parameters
run: |
mkdir -p /home/runner/.masp-params
curl -o /home/runner/.masp-params/masp-spend.params -L https://github.com/anoma/masp-mpc/releases/download/namada-trusted-setup/masp-spend.params\?raw\=true
curl -o /home/runner/.masp-params/masp-output.params -L https://github.com/anoma/masp-mpc/releases/download/namada-trusted-setup/masp-output.params?raw=true
curl -o /home/runner/.masp-params/masp-convert.params -L https://github.com/anoma/masp-mpc/releases/download/namada-trusted-setup/masp-convert.params?raw=true
- name: Download wasm artifacts
uses: actions/download-artifact@v3
with:
name: wasm-${{ github.event.pull_request.head.sha|| github.sha }}
path: ./wasm
- name: Download namada binaries
uses: actions/download-artifact@v3
with:
name: binaries-${{ github.event.pull_request.head.sha || github.sha }}
path: ./target/release/
- name: Download CometBFT
run: |
curl -o cometbft.tar.gz -LO https://github.com/cometbft/cometbft/releases/download/v${{ matrix.comet_bft }}/cometbft_${{ matrix.comet_bft }}_linux_amd64.tar.gz
tar -xvzf cometbft.tar.gz
mv cometbft /usr/local/bin
- name: Download Hermes
run: |
HERMES_VERSION=$(cat .github/workflows/scripts/hermes.txt)
echo "Using hermes version: ${HERMES_VERSION}"
curl -o hermes.zip -LO https://github.com/heliaxdev/hermes/releases/download/v${HERMES_VERSION}/hermes-v${HERMES_VERSION}-x86_64-unknown-linux-gnu.zip
unzip hermes.zip
mv hermes /usr/local/bin
- name: Download Gaia
run: |
GAIA_VERSION=$(cat .github/workflows/scripts/gaia.txt)
echo "Using gaiad version: ${GAIA_VERSION}"
curl -o gaiad -LO https://github.com/cosmos/gaia/releases/download/v${GAIA_VERSION}/gaiad-v${GAIA_VERSION}-linux-amd64
mv gaiad /usr/local/bin
- name: Change permissions
run: |
chmod +x target/release/namada
chmod +x target/release/namadaw
chmod +x target/release/namadan
chmod +x target/release/namadac
chmod +x target/release/namadar
chmod +x /usr/local/bin/cometbft
chmod +x /usr/local/bin/hermes
chmod +x /usr/local/bin/gaiad
- name: Run e2e test
run: python3 .github/workflows/scripts/schedule-e2e.py
env:
NAMADA_MASP_PARAMS_DIR: /home/runner/.masp-params
NAMADA_E2E_USE_PREBUILT_BINARIES: "true"
NAMADA_E2E_KEEP_TEMP: "true"
NAMADA_TM_STDOUT: "false"
NAMADA_LOG_COLOR: "false"
NAMADA_LOG: "info"
RUSTFLAGS: "-C linker=clang -C link-arg=-fuse-ld=/usr/local/bin/mold"
INDEX: ${{ matrix.make.index }}
- name: Upload e2e logs
if: success() || failure()
uses: actions/upload-artifact@v3
with:
name: logs-e2e-${{ matrix.make.index }}-${{ github.event.pull_request.head.sha || github.sha }}
path: |
/tmp/.*/logs/
/tmp/.*/setup/validator-*/logs/
/tmp/.*/setup/valiator-*/e2e-test.*/*.toml
retention-days: 5
- name: Print sccache stats
if: always()
run: sccache --show-stats || true
- name: Stop sccache server
if: always()
run: sccache --stop-server || true
- name: Clean cargo cache
run: |
cargo install cargo-cache --no-default-features --features ci-autoclean cargo-cache
cargo-cache