.github/workflows/main.yml
name: E2E tests
on: [pull_request]
jobs:
build-api-image:
runs-on: ubuntu-latest
steps:
- name: Checkout
uses: actions/checkout@master
- uses: whoan/docker-build-with-cache-action@v5
with:
username: '${{ secrets.DOCKER_HUB_USERNAME }}'
password: '${{ secrets.DOCKER_HUB_KEY }}'
image_name: faloker/purify-api-test
dockerfile: api.dockerfile
build-nginx-image:
runs-on: ubuntu-latest
steps:
- name: Checkout
uses: actions/checkout@master
- uses: whoan/docker-build-with-cache-action@v5
with:
username: '${{ secrets.DOCKER_HUB_USERNAME }}'
password: '${{ secrets.DOCKER_HUB_KEY }}'
image_name: faloker/purify-nginx-test
dockerfile: nginx.dockerfile
build_extra_args: '--build-arg=env=dev'
ui-tests:
needs: ['build-api-image', 'build-nginx-image']
runs-on: ubuntu-latest
strategy:
fail-fast: false
matrix:
containers: [1, 2, 3, 4, 5, 6, 7, 8]
steps:
- name: Checkout
uses: actions/checkout@master
- name: Run tests
uses: cypress-io/github-action@v2
with:
build: npm run start:ci
browser: chrome
record: true
parallel: true
group: 'Chrome'
spec: 'cypress/integration/ui/**/*'
env:
CYPRESS_RECORD_KEY: ${{ secrets.CYPRESS_RECORD_KEY }}
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
api-tests:
needs: ['build-api-image', 'build-nginx-image']
runs-on: ubuntu-latest
strategy:
fail-fast: false
matrix:
containers: [1, 2, 3]
steps:
- name: Checkout
uses: actions/checkout@master
- name: Run tests
uses: cypress-io/github-action@v2
with:
build: npm run start:ci
browser: chrome
headless: true
record: true
parallel: true
group: 'API'
spec: 'cypress/integration/api/**/*'
env:
CYPRESS_RECORD_KEY: ${{ secrets.CYPRESS_RECORD_KEY }}
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}