diff --git a/.github/workflows/e2e-tests.yaml b/.github/workflows/e2e-tests.yaml new file mode 100644 index 0000000..5bd75c9 --- /dev/null +++ b/.github/workflows/e2e-tests.yaml @@ -0,0 +1,90 @@ +name: End to End Tests + +on: + pull_request: + +env: + TAR_PATH: docker-image.tar + ARTIFACT_NAME: tar-docker-image + +concurrency: + group: ${{ github.workflow }}-${{ github.ref }} + cancel-in-progress: true + +jobs: + build: + runs-on: ubuntu-latest + steps: + - name: Build Docker image + uses: strangelove-ventures/heighliner-build-action@v1.0.1 + with: + registry: "" # empty registry, image only shared for e2e testing + tag: local # emulate local environment for consistency in interchaintest cases + tar-export-path: ${{ env.TAR_PATH }} # export a tarball that can be uploaded as an artifact for the e2e jobs + platform: linux/amd64 # test runner architecture only + git-ref: ${{ github.head_ref }} # source code ref + + # Heighliner chains.yaml config + chain: noble-forwarding-simd + dockerfile: cosmos + build-target: make build + build-dir: simapp + binaries: | + - simapp/build/simd + + - name: Publish Tarball as Artifact + uses: actions/upload-artifact@v4 + with: + name: ${{ env.ARTIFACT_NAME }} + path: ${{ env.TAR_PATH }} + + prepare: + runs-on: ubuntu-latest + outputs: + matrix: ${{ steps.set-matrix.outputs.matrix }} + steps: + - name: Checkout Repository + uses: actions/checkout@v4 + + - name: Install Go + uses: actions/setup-go@v5 + with: + go-version: "1.22" + + - name: Generate Matrix + id: set-matrix + run: | + # Run the command and convert its output to a JSON array + TESTS=$(cd e2e && go test -list . | grep -v "^ok " | jq -R -s -c 'split("\n")[:-1]') + echo "matrix=${TESTS}" >> $GITHUB_OUTPUT + + test: + needs: + - build + - prepare + runs-on: ubuntu-latest + strategy: + matrix: + # names of `make` commands to run tests + test: ${{fromJson(needs.prepare.outputs.matrix)}} + fail-fast: false + + steps: + - name: Checkout Repository + uses: actions/checkout@v4 + + - name: Install Go + uses: actions/setup-go@v5 + with: + go-version: "1.22" + + - name: Download Tarball Artifact + uses: actions/download-artifact@v4 + with: + name: ${{ env.ARTIFACT_NAME }} + + - name: Load Docker Image + run: docker image load -i ${{ env.TAR_PATH }} + + - name: run test + run: cd e2e && go test -race -v -timeout 30m -run ^${{ matrix.test }}$ . diff --git a/chains.yaml b/chains.yaml index 1455ecf..dea9f68 100644 --- a/chains.yaml +++ b/chains.yaml @@ -1,5 +1,6 @@ - name: noble-forwarding-simd dockerfile: cosmos build-target: make build + build-dir: simapp binaries: - simapp/build/simd