name: Deploy GitHub Pages on: workflow_dispatch: push: branches: - main paths: - 'aggregator.html' - 'src/**' - 'test/browser-apps/**' - 'package.json' - 'package-lock.json' - '.github/workflows/deploy-pages.yml' pull_request: paths: - 'aggregator.html' - 'src/**' - 'test/browser-apps/**' - 'package.json' - 'package-lock.json' - '.github/workflows/deploy-pages.yml' permissions: contents: read pages: write id-token: write concurrency: group: pages cancel-in-progress: false jobs: build: name: Validate and package Pages site runs-on: ubuntu-latest steps: - name: Checkout uses: actions/checkout@v4 - name: Setup Node.js uses: actions/setup-node@v4 with: node-version: '24.x' cache: 'npm' - name: Setup Deno uses: denoland/setup-deno@v2 with: deno-version: v2.9.2 - name: Install dependencies run: npm ci - name: Install Chromium run: npx playwright@1.62.0 install --with-deps chromium - name: Validate browser applications run: npm run test:browser-apps - name: Validate browser application interoperability run: npm run test:e2e:browser-apps:interop - name: Validate aggregator run: | test -s aggregator.html grep -Fq '' aggregator.html grep -Fq 'obsidian://setuplivesync?settingsQR=' aggregator.html sed -n '/