Repository navigation
Release 2.79.0: empty sub-task typing (#1012) and private CA servers (#1009) #1214
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 | |
| # And its Windows counterpart, where the ARM64 release build comes | |
| # from (#928). | |
| - windows-11-arm | |
| 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: runner.os != 'Windows' | |
| 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 | |
| - name: Package the ARM64 Windows app and check it launches | |
| if: matrix.os == 'windows-11-arm' | |
| shell: bash | |
| # No maintainer has an ARM64 Windows machine, so this is where the | |
| # native build is proven to start before a release ships it (#928): | |
| # a CDP page target, the app drawn, and an ARM64 executable. | |
| run: | | |
| npm exec --workspace @zennotes/desktop -- electron-builder --win dir --arm64 --publish never | |
| node tooling/scripts/packaged-launch-check.mjs dist/win-arm64-unpacked/ZenNotes.exe --expect-arch arm64 |