name: e2e on: [push] # The browser end-to-end suites, one job per browser, deliberately not part # of the check workflow. REPO_POLICIES.md caps make test at 20 seconds and # script/cibuild is a plain `docker build .` whose Dockerfile runs # make check; folding a browser suite into either would break that cap and # slow the local fast path. These jobs are the automatic run the suites # never had: before this workflow, every browser-level guarantee in the # repo held only when a human remembered to run it by hand. # # One job per browser rather than two steps in one job, so a Chrome failure # does not hide the Firefox result. # # These jobs REPORT, they do not gate: nothing merges or refuses to merge on # their result by itself. Gitea decides that in branch protection, which # this repo does not set, so a failure here is a red mark the reviewer must # account for rather than a hard block. Making e2e a required check is the # right end state and is deliberately not done yet, because the Chrome # suite is flaky today under load (see the tracker) and a gate that fails # at random teaches people to merge past red. # # Nothing here is allowed to pass vacuously. There is no continue-on-error # and no `|| true`: script/test-e2e and script/test-e2e-firefox both exit # non-zero when docker is missing, when the extension build is absent, and # when the browser fails to start, and the Chrome harness aborts the whole # suite if its network interception is not in effect. jobs: e2e-chrome: runs-on: ubuntu-latest steps: # actions/checkout v4.2.2, 2026-02-22 - uses: actions/checkout@11bd71901bbe5b1630ceea73d27597364c9af683 - run: script/bootstrap - run: make test-e2e e2e-firefox: runs-on: ubuntu-latest steps: # actions/checkout v4.2.2, 2026-02-22 - uses: actions/checkout@11bd71901bbe5b1630ceea73d27597364c9af683 - run: script/bootstrap - run: make test-e2e-firefox