name: "Build: Frontend All Bundles" 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@v4 - 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: | export NODE_OPTIONS="--max-old-space-size=4096" cd frontend npm run build - name: 'Archive Web Basic Build Results' uses: actions/upload-artifact@v3.1.3 with: name: web-main-js path: frontend/static/frontend/main.js - name: 'Archive Web Basic SelfhostedBuild Results' uses: actions/upload-artifact@v3.1.3 with: name: web-basic-selfhosted-js path: frontend/static/frontend/basic.selfhosted.js - name: 'Archive Web PRO Build Results' uses: actions/upload-artifact@v3.1.3 with: name: web-pro-js path: frontend/static/frontend/pro.js - name: 'Archive Web PRO SelhostedBuild Results' uses: actions/upload-artifact@v3.1.3 with: name: web-pro-selfhosted-js path: frontend/static/frontend/pro.selfhosted.js - name: 'Archive Mobile Build Results' uses: actions/upload-artifact@v3.1.3 with: name: mobile-web.bundle path: mobile/html/Web.bundle # 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@v121 with: workflow: 'Docker: Coordinator' token: ${{ secrets.PERSONAL_TOKEN }} - name: 'Invoke Client App Build CI/CD workflow' if: inputs.semver == '' uses: benc-uk/workflow-dispatch@v121 with: workflow: 'Docker: Client' token: ${{ secrets.PERSONAL_TOKEN }}