Dynamically generate compatibility test files #16765
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
# The Tests / E2E workflow is used to run end-to-end tests on pull requests originating | |
# from the ibc-go repository. The workflow is triggered on a PR opening, when new commits | |
# are pushed to the PR, or when the PR is marked ready for review. | |
name: Tests / E2E | |
on: | |
workflow_dispatch: | |
pull_request: | |
types: | |
# trigger workflow if PR is opened directly as R4R. | |
- opened | |
# trigger workflow if changes are pushed to the branch. | |
- synchronize | |
# trigger workflow if PR is marked ready for review. | |
- ready_for_review | |
paths-ignore: | |
- 'docs/**' | |
- '**.md' | |
- 'LICENSE' | |
# cancel workflows if a new one is triggered on the same branch. | |
concurrency: | |
group: ${{ github.workflow }}-${{ github.ref }} | |
cancel-in-progress: ${{ github.ref != 'refs/heads/main' }} | |
jobs: | |
# determine-image-tag will either output the PR number e.g. pr-1234 or the string main. | |
# this will be used to tag the images that are built during the workflow. | |
determine-image-tag: | |
if: ${{ !github.event.pull_request.draft && github.repository == 'cosmos/ibc-go' && !github.event.pull_request.head.repo.fork && github.actor != 'dependabot[bot]' }} | |
runs-on: ubuntu-latest | |
outputs: | |
simd-tag: ${{ steps.get-tag.outputs.simd-tag }} | |
steps: | |
- uses: actions/checkout@v4 | |
- uses: actions/setup-go@v5 | |
with: | |
go-version: '1.22' | |
- id: get-tag | |
run: | | |
if [ -z "${{ github.event.pull_request.number }}" ] | |
then | |
echo "simd-tag=main" >> $GITHUB_OUTPUT | |
else | |
tag="pr-${{ github.event.pull_request.number }}" | |
echo "Using tag $tag" | |
echo "simd-tag=$tag" >> $GITHUB_OUTPUT | |
fi | |
# e2e generates the e2e tests for the non-forked PRs. It does so by using the | |
# e2e-test-workflow-call.yml each test runs the jobs defined in that file. | |
e2e: | |
# we will be running this job if the PR has not yet been marked for review, and we push additional changes. | |
# we skip the job in this case. | |
if: ${{ !github.event.pull_request.draft && github.repository == 'cosmos/ibc-go' && !github.event.pull_request.head.repo.fork && github.actor != 'dependabot[bot]' }} | |
needs: determine-image-tag # we are required to have a docker tag before we can build any images. | |
uses: ./.github/workflows/e2e-test-workflow-call.yml | |
# unless we explicitly tell the workflow to inherit secrets, required secrets such as GITHUB_TOKEN will not be | |
# provided to the workflow. This would cause privileged operations to fail. | |
secrets: inherit | |
with: | |
# with each test, we build an image from the current code. | |
build-and-push-docker-image: true | |
# if the test fails, we upload logs so that we can download them from the UI. | |
upload-logs: true | |
chain-image: ghcr.io/cosmos/ibc-go-simd | |
# with regular tests, both images are the same. | |
chain-a-tag: '${{ needs.determine-image-tag.outputs.simd-tag }}' | |
chain-b-tag: '${{ needs.determine-image-tag.outputs.simd-tag }}' | |
chain-binary: 'simd' | |
# on regular PRs we won't run upgrade tests. | |
# NOTE: we are exluding TestTransferTestSuite as we run this full suite instead of each individual test. | |
test-exclusions: 'TestUpgradeTestSuite,TestGrandpaTestSuite,TestIBCWasmUpgradeTestSuite,TestTransferTestSuite,TestAuthzTransferTestSuite,TestTransferTestSuiteSendReceive,TestTransferTestSuiteSendEnabled,TestTransferLocalhostTestSuite,TestConnectionTestSuite,TestInterchainAccountsGovTestSuite,TestIncentivizedTransferTestSuite,TestTransferForwardingTestSuite' | |
temp-run-full-suite: true |