Skip to content

CI: MINIWEBAPP_SERVE_GATE opt-in for ci-local.sh (ServeTest @group miniwebapp) #622

@PurHur

Description

@PurHur

Problem

#470 closed — test/real/ServeTest.php @group miniwebapp PATH_INFO routes pass under phpc serve. #472 stage 2 documents MINIWEBAPP_SERVE_GATE=1, but only script/miniwebapp-gates.sh checks the env var; script/ci-local.sh never reads it.

Full gate contributors expect make test / ci-local to catch serve regressions for 003 without remembering a separate env export.

Goal

When MINIWEBAPP_SERVE_GATE=1 (and loopback bind is allowed — not PHP_COMPILER_SKIP_SERVE_TESTS):

  1. ci-local.sh runs PHPUnit with --filter ServeTest limited to @group miniwebapp, or
  2. Fails fast if ServeTest miniwebapp cases are skipped while gate is on.

Default remains off until docs promote stage 2; ROADMAP can flip default after one release.

Implementation hints

File Change
script/ci-local.sh After existing @group serve block, if MINIWEBAPP_SERVE_GATE=1, run vendor/bin/phpunit --filter ServeTest --group miniwebapp
script/ci-fast.sh Optional: same under PHP_COMPILER_SKIP_SERVE_TESTS guard
script/miniwebapp-gates.sh Mark stage 2 [x] when env + ci-local hook exist
test/unit/CiScriptsTest.php Assert ci-local.sh references MINIWEBAPP_SERVE_GATE

Acceptance criteria

MINIWEBAPP_SERVE_GATE=1 ./script/ci-local.sh --filter ServeTest
# Harness (tar copy if bind-mount empty):
./script/docker-ci-local.sh --filter ServeTest

Serve tests may still skip when loopback bind fails — document alongside #245 / PHP_COMPILER_SKIP_SERVE_TESTS.

No .github/workflows/* required.

Dependencies

Links

Metadata

Metadata

Assignees

No one assigned

    Labels

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions