ci: add cron for compatibility tests on main. #223
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
name: Compatibility E2E | ||
on: | ||
# run on 20:00 on Sunday. | ||
schedule: | ||
- cron: '0 20 * * 7' | ||
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/v8.2.x | ||
- release/v8.3.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' }}' | ||
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/v8.2.x | ||
- release/v8.3.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@0d4c9c5ea7693da7b068278f7b52bda2a190a446 | ||
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=${{ inputs.ibc-go-version || 'main-cron-job'}} | ||
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" | ||
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" | ||
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: "transfer-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: "transfer-channel-upgrade-chain-b" |