Build: Frontend All Bundles #352
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
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 Django Static Build Results' | |
uses: actions/upload-artifact@v4 | |
with: | |
name: django-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 Django Static Build Results' | |
uses: actions/upload-artifact@v4 | |
with: | |
name: web-main-static | |
path: | | |
web/static | |
web/*.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 }} |