Skip to content

TESTING {UPSTREAM / HERE} PIPELINES #67

TESTING {UPSTREAM / HERE} PIPELINES

TESTING {UPSTREAM / HERE} PIPELINES #67

name: Wormchain's end-to-end Interchain Tests
on:
pull_request:
push:
tags:
- "**"
branches:
- "main"
permissions:
contents: read
packages: write
env:
GO_VERSION: 1.22.0
TAR_PATH: /tmp/wormchain-docker-image.tar
IMAGE_NAME: wormchain-docker-image
concurrency:
group: ${{ github.workflow }}-${{ github.ref }}
cancel-in-progress: true
jobs:
build-docker:
runs-on: ubuntu-latest
steps:
- name: Checkout
uses: actions/checkout@v4
- name: Setup Go ${{ env.GO_VERSION }}
uses: actions/setup-go@v4
with:
go-version: ${{ env.GO_VERSION }}
cache-dependency-path: wormchain/interchaintest/go.sum
- name: Set up Docker Buildx
uses: docker/setup-buildx-action@v3
- name: Build and export
uses: docker/build-push-action@v5
with:
context: .
file: wormchain/Dockerfile.ict
tags: wormchain:local
outputs: type=docker,dest=${{ env.TAR_PATH }}
- name: Upload artifact
uses: actions/upload-artifact@v3
with:
name: ${{ env.IMAGE_NAME }}
path: ${{ env.TAR_PATH }}
e2e-tests:
needs: build-docker
runs-on: ubuntu-latest
strategy:
matrix:
# names of `make` commands to run tests
test:
- "ictest-cancel-upgrade"
- "ictest-chain-start"
- "ictest-malformed-payload"
- "ictest-guardian-set-proposal"
- "ictest-wormhole-message-proposal"
- "ictest-upgrade-failure"
- "ictest-upgrade"
- "ictest-wasmd-ante"
- "ictest-wormchain"
fail-fast: false
steps:
- name: Set up Go ${{ env.GO_VERSION }}
uses: actions/setup-go@v4
with:
go-version: ${{ env.GO_VERSION }}
cache-dependency-path: interchaintest/go.sum
- name: checkout chain
uses: actions/checkout@v4
- name: Download Tarball Artifact
uses: actions/download-artifact@v3
with:
name: ${{ env.IMAGE_NAME }}
path: /tmp
- name: Load Docker Image
run: |
docker image load -i ${{ env.TAR_PATH }}
docker image ls -a
- name: Run Test
id: run_test
continue-on-error: true
working-directory: wormchain
run: make ${{ matrix.test }}
- name: Retry Failed Test
if: steps.run_test.outcome == 'failure'
working-directory: wormchain
run: |
for i in 1 2; do
echo "Retry attempt $i"
if make ${{ matrix.test }}; then
echo "Test passed on retry"
exit 0
fi
done
echo "Test failed after retries"
exit 1