diff --git a/.github/workflows/wormchain-icts.yml b/.github/workflows/wormchain-icts.yml new file mode 100644 index 0000000000..f8ce2b838b --- /dev/null +++ b/.github/workflows/wormchain-icts.yml @@ -0,0 +1,63 @@ +name: Wormchain's end-to-end Interchain Tests + +on: + pull_request: + push: + tags: + - "**" + branches: + - "main" + +permissions: + contents: read + packages: write + +env: + GO_VERSION: 1.19.0 + +concurrency: + group: ${{ github.workflow }}-${{ github.ref }} + cancel-in-progress: true + +jobs: + e2e-tests: + needs: build-docker + runs-on: ubuntu-latest + strategy: + matrix: + # names of `make` commands to run tests + test: + - "ictest-cancel-upgrade" + - "ictest-malformed-payload" + - "ictest-upgrade-failure" + - "ictest-upgrade" + - "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: Run Test + id: run_test + continue-on-error: true + run: make ${{ matrix.test }} + + - name: Retry Failed Test + if: steps.run_test.outcome == 'failure' + 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 diff --git a/wormchain/Makefile b/wormchain/Makefile index 60b01c59ce..31560bba5f 100644 --- a/wormchain/Makefile +++ b/wormchain/Makefile @@ -78,3 +78,28 @@ bootstrap: clean: rm -rf build/wormchaind build/wormchaind-* build/**/*.db build/**/*.wal vue echo "{\"height\":\"0\",\"round\":0,\"step\":0}" > build/data/priv_validator_state.json + +##################### +## INTERCHAINTESTS ## +##################### + +# Individual Tests ($$ is interpreted as $) +rm-testcache: + go clean -testcache + +ictest-cancel-upgrade: rm-testcache + cd interchaintest && go test -race -v -run ^TestCancelUpgrade$$ ./... + +ictest-malformed-payload: rm-testcache + cd interchaintest && go test -race -v -run ^TestMalformedPayload$$ ./... + +ictest-upgrade-failure: rm-testcache + cd interchaintest && go test -race -v -run ^TestUpgradeFailure$$ ./... + +ictest-upgrade: rm-testcache + cd interchaintest && go test -race -v -run ^TestUpgrade$$ ./... + +ictest-wormchain: rm-testcache + cd interchaintest && go test -race -v -run ^TestWormchain$$ ./... + +.PHONY: ictest-cancel-upgrade ictest-malformed-payload ictest-upgrade-failure ictest-upgrade ictest-wormchain \ No newline at end of file