name: "Build: Frontend All Bundles" on: workflow_dispatch: workflow_call: inputs: semver: required: true type: string default: '' 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@v4 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 Static Build Results' uses: actions/upload-artifact@v4 with: name: web-main-static path: | frontend/static frontend/templates/frontend/*.html - name: 'Archive Node App Static Build Results' uses: actions/upload-artifact@v4 with: name: nodeapp-main-static path: | nodeapp/static nodeapp/*.html - name: 'Archive Desktop App Static Build Results' uses: actions/upload-artifact@v4 with: name: desktop-main-static path: | desktopApp/static desktopApp/*.html - name: 'Archive Mobile Build Results' uses: actions/upload-artifact@v4 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: Print semver run: echo The semver is ${{ github.event.inputs.semver }} - name: 'Invoke Coodinator Image CI' if: inputs.semver == '' uses: benc-uk/workflow-dispatch@v1 with: workflow: 'Docker: Coordinator' token: ${{ secrets.PERSONAL_TOKEN }} - name: 'Invoke Selfhosted Client App Build CI/CD workflow' if: inputs.semver == '' uses: benc-uk/workflow-dispatch@v1 with: workflow: 'Docker: Selfhosted Client' token: ${{ secrets.PERSONAL_TOKEN }} - name: 'Invoke Web Client App Build CI/CD workflow' if: inputs.semver == '' uses: benc-uk/workflow-dispatch@v1 with: workflow: 'Docker: Web Client' token: ${{ secrets.PERSONAL_TOKEN }}