name: Frontend Test & Build on: workflow_dispatch: push: branches: [ "main" ] paths: [ "frontend" ] pull_request: branches: [ "main" ] paths: [ "frontend" ] concurrency: group: '${{ github.workflow }} @ ${{ github.event.pull_request.head.label || github.head_ref || github.ref }}' cancel-in-progress: true permissions: contents: read pull-requests: read jobs: build: runs-on: ubuntu-latest steps: - name: 'Checkout' uses: actions/checkout@v3 - name: 'Setup node' uses: actions/setup-node@v3 with: node-version: 16.17.0 cache: npm cache-dependency-path: frontend/package-lock.json - name: 'Install NPM Dependencies' run: | cd frontend npm install --legacy-peer-deps # npm force install with legacy-peer-deps until new @nivo/core and @nivo/line support react 18 - name: 'Test' run: | cd frontend npm test - name: 'Build' run: | cd frontend npm run build - name: 'Archive Built Results' uses: actions/upload-artifact@v3 with: name: main-js path: frontend/static/frontend/main.js - name: 'Invoke Backend Build CI workflow' uses: benc-uk/workflow-dispatch@v1 with: workflow: 'Backend Image CI' token: ${{ secrets.PERSONAL_TOKEN }} - name: 'Invoke Client App Build CI/CD workflow' uses: benc-uk/workflow-dispatch@v1 with: workflow: 'Client App Image CI/CD' token: ${{ secrets.PERSONAL_TOKEN }}