image-pushed #190
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: Interchain Test | |
on: | |
repository_dispatch: | |
types: [image-pushed] | |
workflow_dispatch: | |
jobs: | |
prepare-matrix: | |
runs-on: ubuntu-latest | |
steps: | |
# We need to figure out a) a ref to clone based on a docker image, and b) which tag to test | |
# If the event is a registry_package, this comes from the pushed image; for a workflow_dispatch, it's the branch/tag that the user supplied | |
- name: Get metadata | |
id: get-metadata | |
run: | | |
if [[ "${{ github.event_name }}" == 'repository_dispatch' ]]; then | |
echo "ref_name=${{ github.event.client_payload.ref_name }}" | tee -a $GITHUB_OUTPUT | |
echo "tag_name=${{ github.event.client_payload.tag_name }}" | tee -a $GITHUB_OUTPUT | |
else | |
echo "ref_name=${{ github.ref_name }}" | tee -a $GITHUB_OUTPUT | |
echo "tag_name=${{ github.ref_name }}" | tee -a $GITHUB_OUTPUT | |
fi | |
- name: Check out repository code | |
uses: actions/checkout@v4 | |
with: | |
ref: ${{ steps.get-metadata.outputs.ref_name }} | |
- name: Setup go | |
uses: actions/setup-go@v5 | |
- name: Prepare matrix | |
id: generate-matrix | |
run: | | |
cd ./tests/interchain | |
echo "matrix=$(go run ./matrix_tool/main.go ${{ steps.get-metadata.outputs.tag_name }})" | tee -a $GITHUB_OUTPUT | |
outputs: | |
matrix: ${{ steps.generate-matrix.outputs.matrix }} | |
ref_name: ${{ steps.get-metadata.outputs.ref_name }} | |
test: | |
needs: prepare-matrix | |
runs-on: ubuntu-latest | |
name: "${{ matrix.previous_version }} -> ${{ matrix.test_version }} test ${{ matrix.test_name }}" | |
strategy: | |
matrix: | |
${{fromJson(needs.prepare-matrix.outputs.matrix)}} | |
fail-fast: false | |
max-parallel: 10 | |
steps: | |
- name: Check out repository code | |
uses: actions/checkout@v4 | |
with: | |
ref: ${{ needs.prepare-matrix.outputs.ref_name }} | |
- name: Setup go | |
uses: actions/setup-go@v5 | |
- name: Run test | |
env: | |
TEST_DOCKER_REGISTRY: "ghcr.io/${{ github.repository_owner }}" | |
TEST_OLD_GAIA_IMAGE_VERSION: "${{ matrix.previous_version }}" | |
TEST_NEW_GAIA_IMAGE_VERSION: "${{ matrix.test_version }}" | |
TEST_UPGRADE_NAME: "${{ matrix.upgrade_name }}" | |
run: | | |
# This docker pull/tag is a quick hack only necessary for v19, since there were no official v18 images built. | |
# Once we're testing 19 -> 20 this can be removed | |
docker pull "ghcr.io/hyphacoop/gaia:v18.1.0" && docker tag "ghcr.io/hyphacoop/gaia:v18.1.0" "ghcr.io/${{ github.repository_owner }}/gaia:v18.1.0" | |
cd ./tests/interchain | |
go test -v ./... -failfast -p 1 -timeout 5h -run="^${{ matrix.test_name }}" |