Compatibility E2E #262
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
# Runs compatibility tests for ibc-go. | |
# Can be triggered manually by setting values for release-branch and ibc-go-version. | |
# On a weekly schedule with default values of 'main' for release-branch and 'main-cron-job' for ibc-go-version. | |
name: Compatibility E2E | |
on: | |
schedule: | |
# run on 20:00 on Sunday. | |
- cron: '0 20 * * 6' | |
workflow_dispatch: | |
inputs: | |
release-branch: | |
description: 'Release branch to test' | |
required: true | |
type: choice | |
options: | |
- release/v7.4.x | |
- release/v7.5.x | |
- release/v7.6.x | |
- release/v7.7.x | |
- release/v7.8.x | |
- release/v8.4.x | |
- release/v8.5.x | |
- release/v9.0.x | |
- main | |
ibc-go-version: | |
description: 'The version of ibc-go that is going to be released' | |
required: true | |
type: string | |
env: | |
REGISTRY: ghcr.io | |
ORG: cosmos | |
IMAGE_NAME: ibc-go-simd | |
RELEASE_BRANCH: ${{ inputs.release-branch || 'main' }} | |
IBC_GO_VERSION: ${{ inputs.ibc-go-version || 'latest' }} | |
jobs: | |
determine-test-directory: | |
runs-on: ubuntu-latest | |
outputs: | |
test-directory: ${{ steps.set-test-dir.outputs.test-directory }} | |
steps: | |
- run: | | |
# we sanitize the release branch name. Docker images cannot contain "/" | |
# characters so we replace them with a "-". | |
test_dir="$(echo $RELEASE_BRANCH | sed 's/\//-/')" | |
echo "test-directory=$test_dir" >> $GITHUB_OUTPUT | |
id: set-test-dir | |
# build-release-images builds all docker images that are relevant for the compatibility tests. If a single release | |
# branch is specified, only that image will be built, e.g. release-v6.0.x. | |
build-release-images: | |
runs-on: ubuntu-latest | |
strategy: | |
matrix: | |
release-branch: | |
- release/v7.4.x | |
- release/v7.5.x | |
- release/v7.6.x | |
- release/v7.7.x | |
- release/v7.8.x | |
- release/v8.4.x | |
- release/v8.5.x | |
- release/v9.0.x | |
- main | |
steps: | |
- uses: actions/checkout@v4 | |
if: env.RELEASE_BRANCH == matrix.release-branch | |
with: | |
ref: "${{ matrix.release-branch }}" | |
fetch-depth: 0 | |
- name: Log in to the Container registry | |
if: env.RELEASE_BRANCH == matrix.release-branch | |
uses: docker/login-action@9780b0c442fbb1117ed29e0efdff1e18412f7567 | |
with: | |
registry: ${{ env.REGISTRY }} | |
username: ${{ github.actor }} | |
password: ${{ secrets.GITHUB_TOKEN }} | |
- name: Build image | |
if: env.RELEASE_BRANCH == matrix.release-branch | |
run: | | |
docker_tag="$(echo ${{ matrix.release-branch }} | sed 's/[^a-zA-Z0-9\.]/-/g')" | |
docker build . -t "${REGISTRY}/${ORG}/${IMAGE_NAME}:$docker_tag" --build-arg IBC_GO_VERSION=${{ env.IBC_GO_VERSION }} | |
docker push "${REGISTRY}/${ORG}/${IMAGE_NAME}:$docker_tag" | |
- name: Display image details | |
if: env.RELEASE_BRANCH == matrix.release-branch | |
run: | | |
docker_tag="$(echo ${{ matrix.release-branch }} | sed 's/[^a-zA-Z0-9\.]/-/g')" | |
docker inspect "${REGISTRY}/${ORG}/${IMAGE_NAME}:$docker_tag" | |
transfer-chain-a: | |
needs: | |
- build-release-images | |
- determine-test-directory | |
uses: ./.github/workflows/e2e-compatibility-workflow-call.yaml | |
with: | |
test-file-directory: "${{ needs.determine-test-directory.outputs.test-directory }}" | |
test-suite: "transfer-chain-a" | |
transfer-chain-b: | |
needs: | |
- build-release-images | |
- determine-test-directory | |
uses: ./.github/workflows/e2e-compatibility-workflow-call.yaml | |
with: | |
test-file-directory: "${{ needs.determine-test-directory.outputs.test-directory }}" | |
test-suite: "transfer-chain-b" | |
transfer-authz-chain-a: | |
needs: | |
- build-release-images | |
- determine-test-directory | |
uses: ./.github/workflows/e2e-compatibility-workflow-call.yaml | |
with: | |
test-file-directory: "${{ needs.determine-test-directory.outputs.test-directory }}" | |
test-suite: "transfer-authz-chain-a" | |
transfer-authz-chain-b: | |
needs: | |
- build-release-images | |
- determine-test-directory | |
uses: ./.github/workflows/e2e-compatibility-workflow-call.yaml | |
with: | |
test-file-directory: "${{ needs.determine-test-directory.outputs.test-directory }}" | |
test-suite: "transfer-authz-chain-b" | |
transfer-v2-forwarding-chain-a: | |
needs: | |
- build-release-images | |
- determine-test-directory | |
uses: ./.github/workflows/e2e-compatibility-workflow-call.yaml | |
with: | |
test-file-directory: "${{ needs.determine-test-directory.outputs.test-directory }}" | |
test-suite: "transfer-v2-forwarding-chain-a" | |
transfer-v2-multidenom-chain-a: | |
needs: | |
- build-release-images | |
- determine-test-directory | |
uses: ./.github/workflows/e2e-compatibility-workflow-call.yaml | |
with: | |
test-file-directory: "${{ needs.determine-test-directory.outputs.test-directory }}" | |
test-suite: "transfer-v2-multidenom-chain-a" | |
connection-chain-a: | |
needs: | |
- build-release-images | |
- determine-test-directory | |
uses: ./.github/workflows/e2e-compatibility-workflow-call.yaml | |
with: | |
test-file-directory: "${{ needs.determine-test-directory.outputs.test-directory }}" | |
test-suite: "connection-chain-a" | |
client-chain-a: | |
needs: | |
- build-release-images | |
- determine-test-directory | |
uses: ./.github/workflows/e2e-compatibility-workflow-call.yaml | |
with: | |
test-file-directory: "${{ needs.determine-test-directory.outputs.test-directory }}" | |
test-suite: "client-chain-a" | |
incentivized-transfer-chain-a: | |
needs: | |
- build-release-images | |
- determine-test-directory | |
uses: ./.github/workflows/e2e-compatibility-workflow-call.yaml | |
with: | |
test-file-directory: "${{ needs.determine-test-directory.outputs.test-directory }}" | |
test-suite: "incentivized-transfer-chain-a" | |
incentivized-transfer-chain-b: | |
needs: | |
- build-release-images | |
- determine-test-directory | |
uses: ./.github/workflows/e2e-compatibility-workflow-call.yaml | |
with: | |
test-file-directory: "${{ needs.determine-test-directory.outputs.test-directory }}" | |
test-suite: "incentivized-transfer-chain-b" | |
ica-chain-a: | |
needs: | |
- build-release-images | |
- determine-test-directory | |
uses: ./.github/workflows/e2e-compatibility-workflow-call.yaml | |
with: | |
test-file-directory: "${{ needs.determine-test-directory.outputs.test-directory }}" | |
test-suite: "ica-chain-a" | |
ica-chain-b: | |
needs: | |
- build-release-images | |
- determine-test-directory | |
uses: ./.github/workflows/e2e-compatibility-workflow-call.yaml | |
with: | |
test-file-directory: "${{ needs.determine-test-directory.outputs.test-directory }}" | |
test-suite: "ica-chain-b" | |
incentivized-ica-chain-a: | |
needs: | |
- build-release-images | |
- determine-test-directory | |
uses: ./.github/workflows/e2e-compatibility-workflow-call.yaml | |
with: | |
test-file-directory: "${{ needs.determine-test-directory.outputs.test-directory }}" | |
test-suite: "incentivized-ica-chain-a" | |
incentivized-ica-chain-b: | |
needs: | |
- build-release-images | |
- determine-test-directory | |
uses: ./.github/workflows/e2e-compatibility-workflow-call.yaml | |
with: | |
test-file-directory: "${{ needs.determine-test-directory.outputs.test-directory }}" | |
test-suite: "incentivized-ica-chain-b" | |
ica-groups-chain-a: | |
needs: | |
- build-release-images | |
- determine-test-directory | |
uses: ./.github/workflows/e2e-compatibility-workflow-call.yaml | |
with: | |
test-file-directory: "${{ needs.determine-test-directory.outputs.test-directory }}" | |
test-suite: "ica-groups-chain-a" | |
ica-groups-chain-b: | |
needs: | |
- build-release-images | |
- determine-test-directory | |
uses: ./.github/workflows/e2e-compatibility-workflow-call.yaml | |
with: | |
test-file-directory: "${{ needs.determine-test-directory.outputs.test-directory }}" | |
test-suite: "ica-groups-chain-b" | |
ica-gov-chain-a: | |
needs: | |
- build-release-images | |
- determine-test-directory | |
uses: ./.github/workflows/e2e-compatibility-workflow-call.yaml | |
with: | |
test-file-directory: "${{ needs.determine-test-directory.outputs.test-directory }}" | |
test-suite: "ica-gov-chain-a" | |
ica-gov-chain-b: | |
needs: | |
- build-release-images | |
- determine-test-directory | |
uses: ./.github/workflows/e2e-compatibility-workflow-call.yaml | |
with: | |
test-file-directory: "${{ needs.determine-test-directory.outputs.test-directory }}" | |
test-suite: "ica-gov-chain-b" | |
ica-queries-chain-a: | |
needs: | |
- build-release-images | |
- determine-test-directory | |
uses: ./.github/workflows/e2e-compatibility-workflow-call.yaml | |
with: | |
test-file-directory: "${{ needs.determine-test-directory.outputs.test-directory }}" | |
test-suite: "ica-queries-chain-a" | |
ica-queries-chain-b: | |
needs: | |
- build-release-images | |
- determine-test-directory | |
uses: ./.github/workflows/e2e-compatibility-workflow-call.yaml | |
with: | |
test-file-directory: "${{ needs.determine-test-directory.outputs.test-directory }}" | |
test-suite: "ica-queries-chain-b" | |
ica-unordered-channel-chain-a: | |
needs: | |
- build-release-images | |
- determine-test-directory | |
uses: ./.github/workflows/e2e-compatibility-workflow-call.yaml | |
with: | |
test-file-directory: "${{ needs.determine-test-directory.outputs.test-directory }}" | |
test-suite: "ica-unordered-channel-chain-a" | |
ica-unordered-channel-chain-b: | |
needs: | |
- build-release-images | |
- determine-test-directory | |
uses: ./.github/workflows/e2e-compatibility-workflow-call.yaml | |
with: | |
test-file-directory: "${{ needs.determine-test-directory.outputs.test-directory }}" | |
test-suite: "ica-unordered-channel-chain-b" | |
localhost-transfer-chain-a: | |
needs: | |
- build-release-images | |
- determine-test-directory | |
uses: ./.github/workflows/e2e-compatibility-workflow-call.yaml | |
with: | |
test-file-directory: "${{ needs.determine-test-directory.outputs.test-directory }}" | |
test-suite: "localhost-transfer-chain-a" | |
localhost-ica-chain-a: | |
needs: | |
- build-release-images | |
- determine-test-directory | |
uses: ./.github/workflows/e2e-compatibility-workflow-call.yaml | |
with: | |
test-file-directory: "${{ needs.determine-test-directory.outputs.test-directory }}" | |
test-suite: "localhost-ica-chain-a" | |
genesis-chain-a: | |
needs: | |
- build-release-images | |
- determine-test-directory | |
uses: ./.github/workflows/e2e-compatibility-workflow-call.yaml | |
with: | |
test-file-directory: "${{ needs.determine-test-directory.outputs.test-directory }}" | |
test-suite: "genesis-chain-a" | |
transfer-channel-upgrade-chain-a: | |
needs: | |
- build-release-images | |
- determine-test-directory | |
uses: ./.github/workflows/e2e-compatibility-workflow-call.yaml | |
with: | |
test-file-directory: "${{ needs.determine-test-directory.outputs.test-directory }}" | |
test-suite: "transfer-channel-upgrade-chain-a" | |
transfer-channel-upgrade-chain-b: | |
needs: | |
- build-release-images | |
- determine-test-directory | |
uses: ./.github/workflows/e2e-compatibility-workflow-call.yaml | |
with: | |
test-file-directory: "${{ needs.determine-test-directory.outputs.test-directory }}" | |
test-suite: "transfer-channel-upgrade-chain-b" | |
transfer-v2-1-channel-upgrade-chain-1: | |
needs: | |
- build-release-images | |
- determine-test-directory | |
uses: ./.github/workflows/e2e-compatibility-workflow-call.yaml | |
with: | |
test-file-directory: "${{ needs.determine-test-directory.outputs.test-directory }}" | |
test-suite: "transfer-v2-1-channel-upgrade-chain-1" | |
transfer-v2-2-channel-upgrade-chain-1: | |
needs: | |
- build-release-images | |
- determine-test-directory | |
uses: ./.github/workflows/e2e-compatibility-workflow-call.yaml | |
with: | |
test-file-directory: "${{ needs.determine-test-directory.outputs.test-directory }}" | |
test-suite: "transfer-v2-2-channel-upgrade-chain-1" | |
ica-channel-upgrade-chain-a: | |
needs: | |
- build-release-images | |
- determine-test-directory | |
uses: ./.github/workflows/e2e-compatibility-workflow-call.yaml | |
with: | |
test-file-directory: "${{ needs.determine-test-directory.outputs.test-directory }}" | |
test-suite: "ica-channel-upgrade-chain-a" | |
ica-channel-upgrade-chain-b: | |
needs: | |
- build-release-images | |
- determine-test-directory | |
uses: ./.github/workflows/e2e-compatibility-workflow-call.yaml | |
with: | |
test-file-directory: "${{ needs.determine-test-directory.outputs.test-directory }}" | |
test-suite: "ica-channel-upgrade-chain-b" |