Skip to content

Commit

Permalink
Enable e2e tests (#685)
Browse files Browse the repository at this point in the history
* feat: enabling e2e tests

* fix: trigger from workflow call

* chore: update actions names

* fix: thor tests path

* feat: cancel old runs

* fix: update junit.xml path

* fix: update upload artifact

* fix: use sha docker docker artifact

* chore: use specific tag

* fix: use full sha for ref
  • Loading branch information
darrenvechain authored Apr 22, 2024
1 parent b8fc907 commit 85dc957
Show file tree
Hide file tree
Showing 3 changed files with 89 additions and 0 deletions.
5 changes: 5 additions & 0 deletions .github/workflows/on-master-commit.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -14,6 +14,10 @@ jobs:
name: Lint
uses: ./.github/workflows/lint-go.yaml

run-e2e-tests:
name: E2E Tests
uses: ./.github/workflows/test-e2e.yaml

generate-tags:
name: Generate Docker Tags
runs-on: ubuntu-latest
Expand All @@ -34,6 +38,7 @@ jobs:
secrets: inherit
needs:
- run-unit-tests
- run-e2e-tests
- generate-tags
- lint
permissions:
Expand Down
8 changes: 8 additions & 0 deletions .github/workflows/on-pull-request.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -5,11 +5,19 @@ on:
branches:
- master

concurrency:
group: ${{ github.workflow }}-${{ github.event.pull_request.number }}
cancel-in-progress: true

jobs:
run-unit-tests:
name: Run Unit Tests
uses: ./.github/workflows/test.yaml

run-e2e-tests:
name: E2E Tests
uses: ./.github/workflows/test-e2e.yaml

lint:
name: Lint
uses: ./.github/workflows/lint-go.yaml
Expand Down
76 changes: 76 additions & 0 deletions .github/workflows/test-e2e.yaml
Original file line number Diff line number Diff line change
@@ -0,0 +1,76 @@
name: E2E Tests

on:
workflow_call:

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@v3

- 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@v4
with:
name: vechain-thor-image-${{ github.sha }}
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 Tests
steps:

- name: Checkout
uses: actions/checkout@v4
with:
repository: vechain/thor-e2e-tests
# https://github.com/vechain/thor-e2e-tests/tree/2cb22d804bb3cdf075917dbece42a182d42d7486
ref: 2cb22d804bb3cdf075917dbece42a182d42d7486

- name: Download artifact
uses: actions/download-artifact@v4
with:
name: vechain-thor-image-${{ github.sha }}
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
run: |
export THOR_IMAGE=vechain/thor:${{ github.sha }}
yarn install
yarn test
- uses: actions/upload-artifact@v4
if: success() || failure()
with:
name: e2e-test-results-${{ github.sha }}
path: ./junit.xml
retention-days: 14

0 comments on commit 85dc957

Please sign in to comment.