diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml index f7df178..364f7e1 100644 --- a/.github/workflows/ci.yml +++ b/.github/workflows/ci.yml @@ -3,7 +3,14 @@ name: CI on: push: branches: [main] + # Nothing the checks build or test reads these files, so a change limited to them skips CI. + paths-ignore: &non-code + - '**/*.md' + - site/** + - .github/workflows/pages.yml + - LICENSE pull_request: + paths-ignore: *non-code permissions: contents: read diff --git a/docs/releasing.md b/docs/releasing.md index 2613c75..74904d1 100644 --- a/docs/releasing.md +++ b/docs/releasing.md @@ -12,7 +12,7 @@ NeedMark is published to npm by GitHub Actions. Changing `version` in `package.j 2. publishes with `npm publish` through npm trusted publishing, so no npm token is stored in GitHub and npm attaches a provenance attestation; 3. creates the Git tag and GitHub release `v` with generated release notes. -The release workflow does not run E2E tests; the CI workflow runs them on every pull request and push to `main`. +The release workflow does not run E2E tests; the CI workflow runs them on pull requests and pushes to `main` that change more than documentation or the site ([`testing.md`](./testing.md#running)). ## Making a release diff --git a/docs/testing.md b/docs/testing.md index e65bdc8..9f917b2 100644 --- a/docs/testing.md +++ b/docs/testing.md @@ -78,7 +78,7 @@ pnpm test:e2e # Playwright: every spec in headed Chromium, @cross-engine test Install the browser engines once with `pnpm exec playwright install chromium webkit`. On Linux, add `--with-deps` and run E2E under a virtual display, `xvfb-run --auto-servernum pnpm test:e2e`, because Chromium runs headed. -While working, run what the change touches: `pnpm test src/server/storage.test.ts`, `pnpm test:e2e tests/review-ux.spec.ts`, a single test with `-g ""`, or one engine with `--project=chromium`. Rebuild with `pnpm build` before E2E after changing `src/`. Before committing or opening a pull request, all four commands must pass. CI (`.github/workflows/ci.yml`) runs `build`, `typecheck` and `test` on Node 22 and 24, and the full E2E suite on Node 24 on Ubuntu under `xvfb-run`; when E2E fails, the traces in `test-results/` are uploaded as the `playwright-traces` artifact. +While working, run what the change touches: `pnpm test src/server/storage.test.ts`, `pnpm test:e2e tests/review-ux.spec.ts`, a single test with `-g "<title>"`, or one engine with `--project=chromium`. Rebuild with `pnpm build` before E2E after changing `src/`. Before committing or opening a pull request, all four commands must pass. CI (`.github/workflows/ci.yml`) runs `build`, `typecheck` and `test` on Node 22 and 24, and the full E2E suite on Node 24 on Ubuntu under `xvfb-run`; when E2E fails, the traces in `test-results/` are uploaded as the `playwright-traces` artifact. CI skips pull requests and pushes that change only files no check reads: Markdown, `site/`, the Pages workflow and `LICENSE` (`paths-ignore` in the workflow). When a new kind of such file is added, list it there. The `main` ruleset requires no status checks, so a skipped run does not block merging. E2E specs run sequentially against one demo server on port 4192 that writes to `needmark-e2e-feedback` in the temporary directory (`/private/tmp` on macOS). Specs that need a proxy start their own on other ports. Chromium runs with overlay scrollbars on every platform, so the viewport keeps its full width as on macOS. A spec that needs classic scrollbars styles them with `::-webkit-scrollbar` in the page's initial CSS, because a styled scrollbar is never an overlay in either engine and WebKit ignores one added after the first layout. diff --git a/site/index.html b/site/index.html index bb1c573..a3df39f 100644 --- a/site/index.html +++ b/site/index.html @@ -6,6 +6,17 @@ <title>NeedMark + + + + + + + + + + + diff --git a/site/ja/index.html b/site/ja/index.html index c53b927..13f911b 100644 --- a/site/ja/index.html +++ b/site/ja/index.html @@ -6,6 +6,17 @@ NeedMark + + + + + + + + + + + diff --git a/site/og-image.png b/site/og-image.png new file mode 100644 index 0000000..2998f46 Binary files /dev/null and b/site/og-image.png differ