Repository navigation
ZenNotes 2.67.0 #1065
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: CI | |
| on: | |
| push: | |
| branches: | |
| - main | |
| pull_request: | |
| permissions: | |
| contents: read | |
| concurrency: | |
| group: ci-${{ github.workflow }}-${{ github.ref }} | |
| cancel-in-progress: true | |
| jobs: | |
| production-dependency-audit: | |
| name: Production dependency audit | |
| runs-on: ubuntu-latest | |
| steps: | |
| - name: Check out repository | |
| uses: actions/checkout@v6 | |
| - name: Set up Node.js | |
| uses: actions/setup-node@v6 | |
| with: | |
| node-version: 22 | |
| cache: npm | |
| - name: Reject high-severity production advisories | |
| run: npm audit --omit=dev --audit-level=high | |
| build: | |
| name: Build (${{ matrix.os }}) | |
| runs-on: ${{ matrix.os }} | |
| strategy: | |
| fail-fast: false | |
| matrix: | |
| os: | |
| - ubuntu-latest | |
| # GitHub's free arm64 Linux runner for public repos. | |
| - ubuntu-24.04-arm | |
| - macos-latest | |
| - windows-latest | |
| steps: | |
| - name: Check out repository | |
| uses: actions/checkout@v6 | |
| - name: Set up Node.js | |
| uses: actions/setup-node@v6 | |
| with: | |
| node-version: 22 | |
| cache: npm | |
| - name: Install dependencies | |
| run: npm ci | |
| - name: Verify terminal artifacts and legacy launchers | |
| if: matrix.os != 'windows-latest' | |
| run: node --test tooling/scripts/terminal-artifact.test.mjs tooling/scripts/terminal-launcher.test.mjs | |
| - name: Verify standalone shared packages | |
| run: npm run test:shared-packages | |
| - name: Verify isolated editor package and assets | |
| if: matrix.os == 'ubuntu-latest' | |
| run: npm run test:app-core-package | |
| - name: Exercise the installed editor in Chrome | |
| if: matrix.os == 'ubuntu-latest' | |
| run: npm run test:app-core-browser | |
| - name: Verify the editor with the mobile Vite version | |
| if: matrix.os == 'ubuntu-latest' | |
| env: | |
| ZEN_CORE_VITE_VERSION: 8.2.2 | |
| run: npm run test:app-core-package | |
| - name: Exercise the Vite 8 editor in Chrome | |
| if: matrix.os == 'ubuntu-latest' | |
| run: npm run test:app-core-browser | |
| - name: Collect browser evidence | |
| if: always() && matrix.os == 'ubuntu-latest' | |
| run: node tooling/scripts/collect-app-core-evidence.mjs "$RUNNER_TEMP/app-core-browser-evidence" | |
| - name: Retain browser evidence | |
| if: always() && matrix.os == 'ubuntu-latest' | |
| uses: actions/upload-artifact@v4 | |
| with: | |
| name: app-core-browser-evidence | |
| path: ${{ runner.temp }}/app-core-browser-evidence | |
| if-no-files-found: ignore | |
| - name: Verify browser asset build lock | |
| run: npm run test:web-dist-lock | |
| - name: Typecheck and build app | |
| run: npm run build:prod |