diff --git a/.github/workflows/test-e2e.yaml b/.github/workflows/test-e2e.yaml new file mode 100644 index 000000000..579dbd662 --- /dev/null +++ b/.github/workflows/test-e2e.yaml @@ -0,0 +1,91 @@ +name: E2E Tests + +on: + pull_request: + branches: + - master + push: + branches: + - master + +jobs: + build-docker-image: + name: Build Docker image + runs-on: ubuntu-latest + steps: + - name: Checkout + uses: actions/checkout@v4 + + - name: Set up QEMU + uses: docker/setup-qemu-action@v2 + + - name: Set up Docker Buildx + uses: docker/setup-buildx-action@v3 + + - name: Build and export + uses: docker/build-push-action@v5 + with: + context: . + tags: vechain/thor:${{ github.sha }} + outputs: type=docker,dest=/tmp/vechain-thor.tar + + - name: Upload artifact + uses: actions/upload-artifact@v3 + with: + name: vechain-thor-image + path: /tmp/vechain-thor.tar + retention-days: 7 + + run-tests: + runs-on: ubuntu-latest + needs: build-docker-image + env: + THOR_IMAGE: vechain/thor:${{ github.sha }} + name: Run E2E Tests + steps: + + - name: Checkout + uses: actions/checkout@v4 + with: + submodules: true + + - name: Download artifact + uses: actions/download-artifact@v3 + with: + name: vechain-thor-image + path: /tmp + + - name: Setup Node JS + uses: actions/setup-node@v4 + with: + node-version: '18.x' + + - name: Load image + run: | + docker load --input /tmp/vechain-thor.tar + docker image ls -a + + - name: Run Tests + working-directory: ./tests/thor-e2e-tests + run: | + export THOR_IMAGE=vechain/thor:${{ github.sha }} + yarn install + yarn test:report + + - name: Publish Results + uses: dorny/test-reporter@v1 + id: test-reporter + if: success() || failure() + with: + name: Integration Tests + only-summary: 'false' + list-suites: 'all' + list-tests: 'all' + fail-on-error: 'true' + reporter: 'mocha-json' + path: | + ./tests/thor-e2e-results/results.json + + - name: Echo Report URL + run: | + echo ${{steps.test-reporter.outputs.url_html}} diff --git a/.gitmodules b/.gitmodules index e69de29bb..3441a15eb 100644 --- a/.gitmodules +++ b/.gitmodules @@ -0,0 +1,3 @@ +[submodule "tests/thor-e2e-tests"] + path = tests/thor-e2e-tests + url = https://github.com/vechain/thor-e2e-tests.git diff --git a/tests/thor-e2e-tests b/tests/thor-e2e-tests new file mode 160000 index 000000000..35227261f --- /dev/null +++ b/tests/thor-e2e-tests @@ -0,0 +1 @@ +Subproject commit 35227261fa3e23bc3140cb95f706c762db2e83a5