faloker/purify

View on GitHub
.github/workflows/main.yml

Summary

Maintainability
Test Coverage
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 }}