Skip to content

e2e

e2e #260

Workflow file for this run

name: e2e
on:
schedule:
- cron: "0 0 * * *"
workflow_dispatch:
inputs:
ethTestnetType:
description: 'Eth testnet type'
required: false
default: 'pow'
type: choice
options:
- pow
- pos
push:
branches: [main]
pull_request:
paths:
- '**.rs'
- '**.go'
- '**.toml'
- '**.lock'
- '**.mod'
- '**.sum'
- '**.sol'
- '.github/workflows/e2e.yml'
- 'bun.lockb'
env:
FOUNDRY_PROFILE: ci
SP1_OPERATOR_REV: 07e23bba5000c9d67dfc1d975ac477164e56db1f
permissions:
contents: read
jobs:
golangci:
name: lint
runs-on: ubuntu-latest
steps:
- name: Checkout sources
uses: actions/checkout@v4
- uses: actions/setup-go@v4
with:
go-version: "1.23"
cache-dependency-path: e2e/interchaintestv8/go.sum
- name: golangci-lint
uses: golangci/golangci-lint-action@v6
with:
version: v1.61
working-directory: e2e/interchaintestv8
e2e:
strategy:
fail-fast: false
matrix:
test:
# List your tests here
- TestWithIbcEurekaTestSuite/TestDeploy_Groth16
- TestWithIbcEurekaTestSuite/TestDeploy_Plonk
- TestWithIbcEurekaTestSuite/TestICS20TransferERC20TokenfromEthereumToCosmosAndBack_Groth16
- TestWithIbcEurekaTestSuite/TestICS20TransferERC20TokenfromEthereumToCosmosAndBack_Plonk
- TestWithIbcEurekaTestSuite/Test_25_ICS20TransferERC20TokenfromEthereumToCosmosAndBack_Groth16
- TestWithIbcEurekaTestSuite/Test_100_ICS20TransferERC20TokenfromEthereumToCosmosAndBack_Plonk
- TestWithIbcEurekaTestSuite/TestICS20TransferNativeCosmosCoinsToEthereumAndBack_Groth16
- TestWithIbcEurekaTestSuite/TestICS20TransferNativeCosmosCoinsToEthereumAndBack_Plonk
- TestWithIbcEurekaTestSuite/TestICS20TransferTimeoutFromEthereumToCosmosChain_Groth16
- TestWithIbcEurekaTestSuite/TestICS20TransferTimeoutFromEthereumToCosmosChain_Plonk
name: ${{ matrix.test }}
runs-on: ubuntu-latest
env:
ETH_TESTNET_TYPE: ${{ github.event.inputs.ethTestnetType || (github.event_name == 'schedule' && 'pos') || 'pow' }}
steps:
- name: Checkout sources
uses: actions/checkout@v4
- name: "Set up environment"
uses: ./.github/setup
- name: Setup Go
uses: actions/setup-go@v4
with:
go-version: "1.22"
check-latest: true
cache-dependency-path: e2e/interchaintestv8/go.sum
- name: Install rust toolchain
uses: actions-rs/toolchain@v1
with:
profile: minimal
toolchain: nightly-2024-10-11
- name: "Cache Operator"
id: cache-operator
uses: actions/cache@v4
with:
path: |
~/.cargo/bin/
key: ${{ runner.os }}-operator-${{ env.SP1_OPERATOR_REV }}
- name: Install SP1 toolchain
if: steps.cache-operator.outputs.cache-hit != 'true'
run: |
curl -L https://sp1.succinct.xyz | bash
~/.sp1/bin/sp1up
~/.sp1/bin/cargo-prove prove --version
- name: Install operator
if: steps.cache-operator.outputs.cache-hit != 'true'
uses: actions-rs/cargo@v1
with:
toolchain: nightly-2024-10-11
command: install
args: --git https://github.com/cosmos/sp1-ics07-tendermint --rev ${{ env.SP1_OPERATOR_REV }} sp1-ics07-tendermint-operator --bin operator --locked
- name: Setup Kurtosis
if: env.ETH_TESTNET_TYPE == 'pos'
run: |
echo "deb [trusted=yes] https://apt.fury.io/kurtosis-tech/ /" | sudo tee /etc/apt/sources.list.d/kurtosis.list
sudo apt update
sudo apt install kurtosis-cli=1.3.0 # Must match the kurtosis library version we use in the e2e tests
kurtosis engine start
kurtosis analytics disable
echo "$(dirname $(which kurtosis))" >> $GITHUB_PATH
shell: bash
- name: Run Tests
env:
SP1_PRIVATE_KEY: ${{ secrets.SP1_PRIVATE_KEY }}
run: |
cd e2e/interchaintestv8
go test -v -mod=readonly . -run '^${{ matrix.test }}$' -timeout 40m