ci: move at the speed of light (deprecate github actions runners) #1
Workflow file for this run
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
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 }} | ||
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: | ||
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 |