Build production regression prevention framework #6
This file contains hidden or 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: Node tests | |
| on: | |
| pull_request: | |
| push: | |
| branches: [main, master, develop] | |
| workflow_dispatch: | |
| permissions: | |
| contents: read | |
| jobs: | |
| node-tooling: | |
| name: Node tooling execution complete | |
| runs-on: ubuntu-latest | |
| timeout-minutes: 15 | |
| steps: | |
| - uses: actions/checkout@v4 | |
| - uses: actions/setup-node@v4 | |
| with: | |
| node-version: '22' | |
| cache: npm | |
| - run: npm install -g npm@11 | |
| - run: npm ci | |
| - uses: ./.github/actions/install-ripgrep | |
| - name: Run every required tooling test and reconcile execution | |
| run: node scripts/run-node-tooling-tests.mjs | |
| - name: Preserve execution evidence and failure diagnostics | |
| if: always() | |
| uses: actions/upload-artifact@v4 | |
| with: | |
| name: node-tooling-${{ github.sha }} | |
| path: test-results/node-tooling/ | |
| if-no-files-found: error | |
| retention-days: 30 | |
| appliance: | |
| name: Appliance Node execution complete | |
| runs-on: ubuntu-latest | |
| timeout-minutes: 20 | |
| steps: | |
| - uses: actions/checkout@v4 | |
| - uses: actions/setup-node@v4 | |
| with: | |
| node-version: '22' | |
| cache: npm | |
| cache-dependency-path: | | |
| package-lock.json | |
| ee/appliance/status-ui/package-lock.json | |
| ee/appliance/host-service/package-lock.json | |
| - run: npm install -g npm@11 | |
| - run: npm ci | |
| - run: npm --prefix ee/appliance/status-ui ci | |
| - run: npm --prefix ee/appliance/host-service ci | |
| - uses: ./.github/actions/install-ripgrep | |
| - uses: azure/setup-helm@v4 | |
| with: | |
| version: v3.17.3 | |
| - name: Build status UI and run every appliance Node test | |
| run: node scripts/run-appliance-tests.mjs | |
| - name: Preserve appliance execution evidence | |
| if: always() | |
| uses: actions/upload-artifact@v4 | |
| with: | |
| name: appliance-node-${{ github.sha }} | |
| path: test-results/appliance/ | |
| if-no-files-found: error | |
| retention-days: 30 |