Some checks failed
CodeQL / Analyze (push) Waiting to run
Docker Build & Push Simapp (main) / docker-build (push) Waiting to run
golangci-lint / lint (push) Waiting to run
Tests / Code Coverage / build (amd64) (push) Waiting to run
Tests / Code Coverage / build (arm64) (push) Waiting to run
Tests / Code Coverage / unit-tests (map[additional-args:-tags="test_e2e" name:e2e path:./e2e]) (push) Waiting to run
Tests / Code Coverage / unit-tests (map[name:08-wasm path:./modules/light-clients/08-wasm]) (push) Waiting to run
Tests / Code Coverage / unit-tests (map[name:ibc-go path:.]) (push) Waiting to run
Deploy to GitHub Pages / Deploy to GitHub Pages (push) Has been cancelled
Buf-Push / push (push) Has been cancelled
74 lines
2.9 KiB
YAML
74 lines
2.9 KiB
YAML
on:
|
|
workflow_call:
|
|
inputs:
|
|
test-file:
|
|
description: 'The test file'
|
|
required: true
|
|
type: string
|
|
release-version:
|
|
description: 'the release tag, e.g. release-v7.3.0'
|
|
required: true
|
|
type: string
|
|
chain:
|
|
description: 'Should be one of chain-a, chain-b or all. Split up workflows into multiple (chain-a and chain-b) versions if the job limit is exceeded.'
|
|
required: false
|
|
type: string
|
|
default: all
|
|
|
|
jobs:
|
|
load-test-matrix:
|
|
outputs:
|
|
test-matrix: ${{ steps.set-test-matrix.outputs.test-matrix }}
|
|
runs-on: depot-ubuntu-22.04-4
|
|
steps:
|
|
- uses: actions/checkout@v4
|
|
- uses: actions/setup-python@v5
|
|
with:
|
|
python-version: '3.10'
|
|
- run: pip install -r requirements.txt
|
|
- run: |
|
|
# use jq -c to compact the full json contents into a single line. This is required when using the json body
|
|
# to create the matrix in the following job.
|
|
test_matrix="$(python scripts/generate-compatibility-json.py --file ${{ inputs.test-file }} --release-version ${{ inputs.release-version }} --chain ${{ inputs.chain }})"
|
|
echo "test-matrix=$test_matrix" >> $GITHUB_OUTPUT
|
|
id: set-test-matrix
|
|
|
|
e2e:
|
|
runs-on: depot-ubuntu-22.04-4
|
|
needs: load-test-matrix
|
|
# this job is skipped if the test-matrix generated is empty. i.e. if the file was not present.
|
|
# this allows us to not have to handle special case versions which may not have certain tests run against them.
|
|
if: needs.load-test-matrix.outputs.test-matrix
|
|
strategy:
|
|
fail-fast: false
|
|
matrix: ${{ fromJSON(needs.load-test-matrix.outputs.test-matrix) }}
|
|
steps:
|
|
- name: Checkout the ibc-go repo
|
|
uses: actions/checkout@v4
|
|
with:
|
|
repository: cosmos/ibc-go
|
|
- uses: actions/setup-go@v5
|
|
with:
|
|
go-version: '1.23'
|
|
cache-dependency-path: 'e2e/go.sum'
|
|
- name: Run e2e Test
|
|
run: |
|
|
cd e2e
|
|
make e2e-test test=${{ matrix.test }}
|
|
env:
|
|
# each test has its own set of variables to specify which images are used.
|
|
# Note: this is significant as the standard behaviour when running e2es on PRs
|
|
# is that there is a set of env vars that are the same for each run. e.g. the same docker image is used
|
|
# for every test. With compatibility tests, each test may be running different combinations of images.
|
|
CHAIN_A_TAG: '${{ matrix.chain-a }}'
|
|
CHAIN_B_TAG: '${{ matrix.chain-b }}'
|
|
RELAYER_ID: '${{ matrix.relayer-type }}'
|
|
- name: Upload Diagnostics
|
|
uses: actions/upload-artifact@v4
|
|
# we only want to upload logs on test failures.
|
|
if: ${{ failure() }}
|
|
continue-on-error: true
|
|
with:
|
|
name: '${{ matrix.entrypoint }}-${{ matrix.test }}'
|
|
path: e2e/diagnostics
|
|
retention-days: 5
|