Compare commits
1
Commits
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
aedb729e02 |
@@ -3,6 +3,9 @@ on: [push]
|
|||||||
jobs:
|
jobs:
|
||||||
check:
|
check:
|
||||||
runs-on: ubuntu-latest
|
runs-on: ubuntu-latest
|
||||||
|
# Bounds script/cibuild, a cold-cache build included, so a hang frees
|
||||||
|
# the shared runner. README.md "In CI" has the measured times.
|
||||||
|
timeout-minutes: 10
|
||||||
steps:
|
steps:
|
||||||
# actions/checkout v4.2.2, 2026-02-22
|
# actions/checkout v4.2.2, 2026-02-22
|
||||||
- uses: actions/checkout@11bd71901bbe5b1630ceea73d27597364c9af683
|
- uses: actions/checkout@11bd71901bbe5b1630ceea73d27597364c9af683
|
||||||
|
|||||||
@@ -35,6 +35,10 @@ on: [push]
|
|||||||
jobs:
|
jobs:
|
||||||
e2e-chrome:
|
e2e-chrome:
|
||||||
runs-on: ubuntu-latest
|
runs-on: ubuntu-latest
|
||||||
|
# Bounds the image build, a cold cache included, and both Chrome
|
||||||
|
# programs, so a hung browser frees the shared runner. README.md
|
||||||
|
# "In CI" has the measured times.
|
||||||
|
timeout-minutes: 20
|
||||||
steps:
|
steps:
|
||||||
# actions/checkout v4.2.2, 2026-02-22
|
# actions/checkout v4.2.2, 2026-02-22
|
||||||
- uses: actions/checkout@11bd71901bbe5b1630ceea73d27597364c9af683
|
- uses: actions/checkout@11bd71901bbe5b1630ceea73d27597364c9af683
|
||||||
@@ -42,6 +46,10 @@ jobs:
|
|||||||
|
|
||||||
e2e-firefox:
|
e2e-firefox:
|
||||||
runs-on: ubuntu-latest
|
runs-on: ubuntu-latest
|
||||||
|
# Bounds the image build, a cold cache included, and both Firefox
|
||||||
|
# programs, so a hung browser frees the shared runner. README.md
|
||||||
|
# "In CI" has the measured times.
|
||||||
|
timeout-minutes: 15
|
||||||
steps:
|
steps:
|
||||||
# actions/checkout v4.2.2, 2026-02-22
|
# actions/checkout v4.2.2, 2026-02-22
|
||||||
- uses: actions/checkout@11bd71901bbe5b1630ceea73d27597364c9af683
|
- uses: actions/checkout@11bd71901bbe5b1630ceea73d27597364c9af683
|
||||||
|
|||||||
@@ -643,12 +643,20 @@ Nothing in either job can pass vacuously. There is no `continue-on-error` and no
|
|||||||
build fails, and when the browser fails to start; the Chrome harness aborts the
|
build fails, and when the browser fails to start; the Chrome harness aborts the
|
||||||
suite outright if its network interception is not in effect.
|
suite outright if its network interception is not in effect.
|
||||||
|
|
||||||
Measured on this repo's runner: `e2e-chrome` about 1m55s cold, almost all of it
|
Measured on this repo's runner in the green runs of early October 2026, from a
|
||||||
the one-time pull of the pinned ~800MB Playwright layer, and well under a minute
|
warm docker cache to a cold one: `check` 49s to 3m37s, `e2e-chrome` 1m44s to
|
||||||
once that layer is cached. `e2e-firefox` about 1m05s cold, and it caches its
|
4m48s, and `e2e-firefox` 31s to 4m07s. A cold cache adds three to four minutes
|
||||||
Firefox and geckodriver downloads the same way. The `e2e-chrome` figures predate
|
to each job, spent rebuilding its image: reinstalling dependencies and, for
|
||||||
the two cases that wait for a receipt to end in error, which add about two
|
`e2e-firefox`, installing Firefox, geckodriver and their system libraries. Those
|
||||||
minutes of real waiting.
|
`e2e-chrome` runs predate the cases that wait in real time for a receipt to end
|
||||||
|
in error. `make test-e2e` now takes 3m51s locally with its image cached, so a
|
||||||
|
cold `e2e-chrome` run comes to about seven minutes.
|
||||||
|
|
||||||
|
Every job has a `timeout-minutes` cap, so a hung build or browser ends the job
|
||||||
|
instead of holding the shared runner: `check` 10 minutes, `e2e-firefox` 15 and
|
||||||
|
`e2e-chrome` 20, each over two and a half times the job's slowest cold run. A
|
||||||
|
job that reaches its cap has hung; read it as a hang, not as a slow run to
|
||||||
|
retry.
|
||||||
|
|
||||||
### Element id guard (part of `make check`)
|
### Element id guard (part of `make check`)
|
||||||
|
|
||||||
|
|||||||
@@ -45,6 +45,12 @@ but the review is broader than any of them.
|
|||||||
|
|
||||||
# Completed Steps
|
# Completed Steps
|
||||||
|
|
||||||
|
- 2026-10-05: Every CI job has a `timeout-minutes` cap
|
||||||
|
([#294](https://git.eeqj.de/sneak/AutistMask/issues/294)): `check` 10 minutes,
|
||||||
|
`e2e-firefox` 15 and `e2e-chrome` 20, each over two and a half times the job's
|
||||||
|
slowest cold-cache run. A hung build or browser now ends its job instead of
|
||||||
|
holding the shared runner for hours.
|
||||||
|
|
||||||
- 2026-10-05: The popup's Content Security Policy no longer allows inline style
|
- 2026-10-05: The popup's Content Security Policy no longer allows inline style
|
||||||
([#328](https://git.eeqj.de/sneak/AutistMask/issues/328)): `style-src` is
|
([#328](https://git.eeqj.de/sneak/AutistMask/issues/328)): `style-src` is
|
||||||
`'self'` in both manifests, pinned in `tests/manifest.test.js`. The 42
|
`'self'` in both manifests, pinned in `tests/manifest.test.js`. The 42
|
||||||
|
|||||||
Reference in New Issue
Block a user