name: Frontend Test & Build on: workflow_dispatch: workflow_call: inputs: semver: required: true type: string 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 - 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: web-main-js path: frontend/static/frontend/main.js - name: 'Archive Built Results' uses: actions/upload-artifact@v3 with: name: mobile-main-js path: mobile/html/Web.bundle/js/main.js # Invoke pre-release image build if this was not a tag push # Docker images tagged only with short commit hash - name: 'Invoke Coodinator Image CI' if: inputs.semver == '' uses: benc-uk/workflow-dispatch@v1 with: workflow: 'Coodinator Image CI' token: ${{ secrets.PERSONAL_TOKEN }} - name: 'Invoke Client App Build CI/CD workflow' if: inputs.semver == '' uses: benc-uk/workflow-dispatch@v1 with: workflow: 'Client App Image CI/CD' token: ${{ secrets.PERSONAL_TOKEN }}