Skip to content

Commit

Permalink
Run tests with Namada chain (#18)
Browse files Browse the repository at this point in the history
* Initial work to run tests with Namada chain

* Add wait before spawning chain handles

* Removed fixed chain name for Gaia

* Handle namada denom derivation from ibc transfers

* Remove 'get_denom_for_derive' calls

* Add CI job for tests with Namada

* Remove Namada to Gaia job due to yaml syntax error

* Fix bugs when creating Denom in tests and Gaia to Namada CI job

* Update nix flake and add NAMADA_REPO_PATH env variable to CI job

* Fix NAMDA_REPO_PATH setup in CI job

* Switch Nix install step to use DeterminateSystems

* Moved DeterminateSystems nix installer to Namada CI job only

* Add namada-src package to flake.nix

* Add step to generate Namada files

* Update Namada bootstrap in CI

* Update Namada bootstrap for Namada v0.33.0

* Update nix flake and improve Namada CI

* Update nix flake and replace Gaia v13 and v14 with Gaia v15

* Remove unwraps and update comment

* Use rsync instead of cp in CI job

* Fix rsync call to correctly copy in the namada-repo directory

* Fix copying and changing Namada repo permissions in CI

* Free disk space and correctly fix file permissions in Namada test CI

* Run Namada tests only when all other tests are finished

* Add job to run Namada test scripts

* Fix Namada script CI job and skip memo filter with Namada

* Separate CI job namada and namada-scripts to avoid error 137

* Use Gaia v14 for Namada test scripts

* Split Namada scripts CI job

* Remove Namada scripts job

* Fix clippy error from v1.78.0

* Use Namada branch which exposes wasm files in CI

* Use correct Namada repository path in CI

* Fix permission on exposed Namada repository

* Separate Namada to Namada and Gaia to Namada CI jobs from other jobs, and run them sequentially

* Reduce RocksDB cache when running tests with Namada

* Revert "Separate Namada to Namada and Gaia to Namada CI jobs from other jobs, and run them sequentially"

This reverts commit 1d3f7eb.

* Update Namada in Nix flake and fix error from merge

* Update nix flake

* Split Namada integration test in separate workflow

* Fix namada action

* Use custom runner for Namada workflow

* Remove free disk space CI step from Namada workflow

* Fix and improve CometBFT installation for Namada workflow

* Fix download MASP step from Namada workflow

* Retrieve Namada without Nix for workflow

* Fix step fetching Namada binaries

* Only copy Namada binaries

* Add debug output

* Fix retrieving Namada repository

* Add debug output for Namada repo

* Add tree  to Gaia to Namada CI job

* Improve Namada Github workflow

* Add debug ls and pwd in Namada workflow

* Reorder checkout calls in Namada workflow

* Add missing indentation which broke Namada workflow

* Clean-up integration tests and Namada bootstrap

* Use default Github action runner

* Install libssl in Namada workflow

* Update Ubuntu used for Namada workflow to include libssl3

* Clean-up Namada workflow

* Fix Namada to Namada CI job
  • Loading branch information
ljoss17 authored Jun 7, 2024
1 parent bb01bd8 commit 5f083d1
Show file tree
Hide file tree
Showing 73 changed files with 2,245 additions and 1,346 deletions.
189 changes: 189 additions & 0 deletions .github/workflows/namada.yaml
Original file line number Diff line number Diff line change
@@ -0,0 +1,189 @@
name: Namada Integration

on:
workflow_dispatch:
pull_request:
paths:
- .github/workflows/integration.yaml
- Cargo.toml
- Cargo.lock
- flake.nix
- flake.lock
- ci/**
- e2e/**
- crates/**
- tools/**

env:
CARGO_INCREMENTAL: 0
CARGO_PROFILE_DEV_DEBUG: 1
CARGO_PROFILE_RELEASE_DEBUG: 1
RUST_BACKTRACE: short
CARGO_NET_RETRY: 10
RUSTUP_MAX_RETRIES: 10

# Cancel previous runs of this workflow when a new commit is added to the PR, branch or tag
concurrency:
group: ${{ github.workflow }}-${{ github.event.pull_request.number || github.ref }}
cancel-in-progress: true

jobs:
gaia-namada:
runs-on: ubuntu-22.04
strategy:
fail-fast: false
matrix:
chain:
- package: .#gaia15
command: gaiad,namada
account_prefix: cosmos,''
native_token: stake,nam
steps:
- uses: actions/checkout@v4
- name: Clone Namada
uses: actions/checkout@v4
with:
repository: anoma/namada
ref: yuji/for-hermes-ci
path: namada
- name: Retrieve Namada repository path
id: namada-repo-path
run: |
echo "NAMADA_REPO_PATH=$(pwd)/namada" >> "$GITHUB_ENV"
- name: Install Nix
uses: DeterminateSystems/nix-installer-action@main
with:
extra-conf: |
substituters = https://cache.nixos.org
trusted-public-keys = cache.nixos.org-1:6NCHdD59X431o0gWypbMrAURkbJ16ZPMQFGspcDShjY=
- name: Install Cachix
uses: cachix/cachix-action@v14
with:
name: cosmos-nix
- uses: actions-rust-lang/setup-rust-toolchain@v1
with:
toolchain: stable
- 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 }}
- uses: actions-rs/cargo@v1
with:
command: test
args: -p ibc-integration-test --features namada --no-fail-fast --no-run
- name: Install cargo-nextest
run: curl -LsSf https://get.nexte.st/latest/linux | tar zxf - -C ${CARGO_HOME:-~/.cargo}/bin
- name: Download CometBFT
run: |
curl -o cometbft.tar.gz -LO https://github.com/cometbft/cometbft/releases/download/v0.37.2/cometbft_0.37.2_linux_amd64.tar.gz
tar -xvzf cometbft.tar.gz
chmod +x cometbft
mkdir -p $HOME/local/bin
mv cometbft ~/local/bin
- name: Download Namada binaries
env:
OPERATING_SYSTEM: Linux
run: |
release_url=$(curl -s "https://api.github.com/repos/anoma/namada/releases/157259234" | grep "browser_download_url" | cut -d '"' -f 4 | grep "$OPERATING_SYSTEM")
wget "$release_url"
tar -xzvf namada*.tar.gz
cp ./namada*/namadac ~/local/bin/namadac
cp ./namada*/namadan ~/local/bin/namadan
cp ./namada*/namadaw ~/local/bin/namadaw
cp ./namada*/namada ~/local/bin/namada
- name: Update environment path
run: |
echo "${HOME}/local/bin" >> $GITHUB_PATH
- name: Download MASP parameters
run: |
echo $HOME
mkdir -p $HOME/.masp-params
curl -o $HOME/.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/.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/.masp-params/masp-convert.params -L https://github.com/anoma/masp-mpc/releases/download/namada-trusted-setup/masp-convert.params?raw=true
- env:
RUST_LOG: info
RUST_BACKTRACE: 1
NO_COLOR_LOG: 1
CHAIN_COMMAND_PATHS: ${{ matrix.chain.command }}
ACCOUNT_PREFIXES: ${{ matrix.chain.account_prefix }}
NATIVE_TOKENS: ${{ matrix.chain.native_token }}
run: |
nix shell ${{ matrix.chain.package }} -c \
cargo nextest run -p ibc-integration-test --no-fail-fast --failure-output final --test-threads=1 \
--features namada
namada:
runs-on: ubuntu-22.04
strategy:
fail-fast: false
steps:
- uses: actions/checkout@v4
- name: Clone Namada
uses: actions/checkout@v4
with:
repository: anoma/namada
ref: yuji/for-hermes-ci
path: namada
- name: Retrieve Namada repository path
id: namada-repo-path
run: |
echo "NAMADA_REPO_PATH=$(pwd)/namada" >> "$GITHUB_ENV"
- uses: actions-rust-lang/setup-rust-toolchain@v1
with:
toolchain: stable
- 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 }}
- uses: actions-rs/cargo@v1
with:
command: test
args: -p ibc-integration-test --features namada --no-fail-fast --no-run
- name: Install cargo-nextest
run: curl -LsSf https://get.nexte.st/latest/linux | tar zxf - -C ${CARGO_HOME:-~/.cargo}/bin
- name: Download CometBFT
run: |
curl -o cometbft.tar.gz -LO https://github.com/cometbft/cometbft/releases/download/v0.37.2/cometbft_0.37.2_linux_amd64.tar.gz
tar -xvzf cometbft.tar.gz
mkdir -p ~/local/bin
chmod +x cometbft
mv cometbft ~/local/bin
- name: Download Namada binaries
env:
OPERATING_SYSTEM: Linux
run: |
release_url=$(curl -s "https://api.github.com/repos/anoma/namada/releases/157259234" | grep "browser_download_url" | cut -d '"' -f 4 | grep "$OPERATING_SYSTEM")
wget "$release_url"
tar -xzvf namada*.tar.gz
cp ./namada*/namadac ~/local/bin/namadac
cp ./namada*/namadan ~/local/bin/namadan
cp ./namada*/namadaw ~/local/bin/namadaw
cp ./namada*/namada ~/local/bin/namada
- name: Update environment path
run: |
echo "${HOME}/local/bin" >> $GITHUB_PATH
- name: Download MASP parameters
run: |
echo $HOME
mkdir -p $HOME/.masp-params
curl -o $HOME/.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/.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/.masp-params/masp-convert.params -L https://github.com/anoma/masp-mpc/releases/download/namada-trusted-setup/masp-convert.params?raw=true
- env:
RUST_LOG: info
RUST_BACKTRACE: 1
NO_COLOR_LOG: 1
CHAIN_COMMAND_PATHS: namada
ACCOUNT_PREFIXES: ''
NATIVE_TOKENS: nam
run: |
cargo nextest run -p ibc-integration-test --no-fail-fast --failure-output final --test-threads=1 \
--features namada
Loading

0 comments on commit 5f083d1

Please sign in to comment.