ElectronicBabylonianLiterature/ebl-frontend

View on GitHub
.github/workflows/main.yml

Summary

Maintainability
Test Coverage
name: CI

on:
  push:
  pull_request:
    branches: [ master ]

  # Allows you to run this workflow manually from the Actions tab
  workflow_dispatch:

env:
  SLACK_WEBHOOK_URL: ${{ secrets.SLACK_WEBHOOK_URL }}

jobs:
  test:
    runs-on: ubuntu-latest

    steps:
      - uses: actions/checkout@v3

      - uses: actions/setup-node@v1
        with:
          node-version: '16'

      - name: Install
        id: install
        run: yarn install --dev --frozen-lockfile

      - name: Lint
        if: success() || steps.install.outcome == 'success'
        run: yarn lint
     
      - name: Compile
        if: success() || steps.install.outcome == 'success'
        run: yarn tsc

      - name: Unit Tests
        id: unit_tests
        if: success() || steps.install.outcome == 'success'  
        uses: paambaati/codeclimate-action@v2.7.4
        env:
          CC_TEST_REPORTER_ID: ${{ secrets.CC_TEST_REPORTER_ID }}
        with:
          coverageCommand: yarn test --coverage --forceExit --detectOpenHandles
  
  docker:
    if: github.event_name == 'push' && github.ref == 'refs/heads/master'
    needs: [test]
    runs-on: ubuntu-latest
    steps:
      - uses: actions/checkout@v3

      - uses: docker/setup-buildx-action@v1
        
      - uses: docker/login-action@v1 
        with:
          registry: www.ebl.lmu.de
          username: ${{ secrets.EBL_REGISTRY_USERNAME }}
          password: ${{ secrets.EBL_REGISTRY_PASSWORD }}

      - id: docker_build
        uses: docker/build-push-action@v2
        with:        
          build-args: |
            REACT_APP_AUTH0_DOMAIN=auth.ebl.lmu.de
            REACT_APP_CORRECTIONS_EMAIL=ebl-support+corrections@culture.lmu.de
            REACT_APP_INFO_EMAIL=ebl-info@culture.lmu.de
            REACT_APP_AUTH0_CLIENT_ID=${{ secrets.REACT_APP_AUTH0_CLIENT_ID }}
            REACT_APP_AUTH0_AUDIENCE=${{ secrets.REACT_APP_AUTH0_AUDIENCE }}
            REACT_APP_DICTIONARY_API_URL=/api
            REACT_APP_SENTRY_DSN=${{ secrets.REACT_APP_SENTRY_DSN }}
            REACT_APP_GA_TRACKING_ID=${{ secrets.REACT_APP_GA_TRACKING_ID }}
          context: .
          file: ./Dockerfile
          push: true
          tags: |
            www.ebl.lmu.de/ebl-frontend:master
            ${{format('www.ebl.lmu.de/ebl-frontend:master.{0}', github.run_number)}}

  docker-test: 
    if: github.event_name == 'push' && github.ref == 'refs/heads/master'
    runs-on: ubuntu-latest
    steps:
      - uses: actions/checkout@v3

      - uses: docker/setup-buildx-action@v1
        
      - uses: docker/login-action@v1 
        with:
          registry: www.ebl.lmu.de
          username: ${{ secrets.EBL_REGISTRY_USERNAME }}
          password: ${{ secrets.EBL_REGISTRY_PASSWORD }}

      - id: docker_build
        uses: docker/build-push-action@v2
        with:        
          build-args: |
            REACT_APP_AUTH0_DOMAIN=auth.ebl.lmu.de
            REACT_APP_CORRECTIONS_EMAIL=ebl-support+corrections@culture.lmu.de
            REACT_APP_INFO_EMAIL=ebl-info@culture.lmu.de
            REACT_APP_AUTH0_CLIENT_ID=${{ secrets.REACT_APP_AUTH0_CLIENT_ID }}
            REACT_APP_AUTH0_AUDIENCE=${{ secrets.REACT_APP_AUTH0_AUDIENCE }}
            REACT_APP_DICTIONARY_API_URL=/test/api
            REACT_APP_SENTRY_DSN=${{ secrets.REACT_APP_SENTRY_DSN }}
            REACT_APP_GA_TRACKING_ID=${{ secrets.REACT_APP_GA_TRACKING_ID }}
          context: .
          file: ./Dockerfile
          push: true
          tags: |
            www.ebl.lmu.de/ebl-frontend:test