Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
2 changes: 1 addition & 1 deletion docs/README.md
Original file line number Diff line number Diff line change
Expand Up @@ -34,7 +34,7 @@ Generated maps and large tables — **repo only**; exclude from `docs/pages/` co
| [bootstrap-vendor-inventory.md](bootstrap-vendor-inventory.md) | Vendor prelink inventory |
| [local-ci-matrix.md](local-ci-matrix.md) | Host / Docker CI matrix |
| [miniwebapp-aot-unskip-matrix.md](miniwebapp-aot-unskip-matrix.md) | AOT execute bisect matrix |
| [roadmap-wave3.md](roadmap-wave3.md) | Wave 3 PR table (#1354–#1379); drift guard: `php script/check-wave3-roadmap-sync.php` (opt-in: `WAVE3_ROADMAP_SYNC_GATE=1 ./script/ci-fast.sh`, issue #1802) |
| [roadmap-wave3.md](roadmap-wave3.md) | Wave 3 PR table (#1354–#1379); drift guard: `php script/check-wave3-roadmap-sync.php` (default in `./script/ci-fast.sh` via `WAVE3_ROADMAP_SYNC_GATE=1`; opt-out `=0`, issues #1802, #1814) |
| M2 spine issue hygiene | `php script/check-m2-spine-issue-hygiene.php` (default in `ci-fast.sh` via `M2_SPINE_ISSUE_HYGIENE_GATE=1`; opt-out `=0` for bulk spine PRs, issue #1819) |

## Compiler reference
Expand Down
2 changes: 1 addition & 1 deletion docs/local-ci-matrix.md
Original file line number Diff line number Diff line change
Expand Up @@ -96,7 +96,7 @@ Defaults are exported from [`script/ci-defaults.env`](../script/ci-defaults.env)
| `CI_FAST_BOOTSTRAP` | `0` | `ci-fast.sh` | Optional llvm tail: bootstrap aot-lint + probe + wave-check when LLVM 9 present |
| `JIT_PREFLIGHT_GATE` | `0` | `ci-fast.sh` | Early MCJIT probe after `composer install` ([#728](https://github.com/PurHur/php-compiler/issues/728)) |
| `M2_SPINE_ISSUE_HYGIENE_GATE` | `1` | `ci-fast.sh` (`ci_run_inventory_checks`) | `script/check-m2-spine-issue-hygiene.php` — stale `m2-spine-unit` tickets ([#1819](https://github.com/PurHur/php-compiler/issues/1819), [#1808](https://github.com/PurHur/php-compiler/issues/1808)); set `0` for bulk spine PRs |
| `WAVE3_ROADMAP_SYNC_GATE` | `0` | `ci-fast.sh` (`ci_run_inventory_checks`) | `script/check-wave3-roadmap-sync.php` ([#1802](https://github.com/PurHur/php-compiler/issues/1802), [#1814](https://github.com/PurHur/php-compiler/issues/1814)) |
| `WAVE3_ROADMAP_SYNC_GATE` | `1` | `ci-fast.sh` (`ci_run_inventory_checks`) | `script/check-wave3-roadmap-sync.php` ([#1802](https://github.com/PurHur/php-compiler/issues/1802), [#1814](https://github.com/PurHur/php-compiler/issues/1814)); set `0` for doc-only iteration |

Ladder-only env vars (not in `ci-defaults.env`): `MINIWEBAPP_LINT_GATE` (default `1` in `web-smoke.sh`), `MINIWEBAPP_AOT_BISECT_GATE` (default `0` in `miniwebapp-gates.sh` — [#879](https://github.com/PurHur/php-compiler/issues/879)).

Expand Down
2 changes: 1 addition & 1 deletion script/ci-common.sh
Original file line number Diff line number Diff line change
Expand Up @@ -72,7 +72,7 @@ ci_run_capability_syntax_check() {
}

ci_run_wave3_roadmap_sync_check() {
if [[ "${WAVE3_ROADMAP_SYNC_GATE:-0}" != "1" ]]; then
if [[ "${WAVE3_ROADMAP_SYNC_GATE:-1}" != "1" ]]; then
return 0
fi
echo "Wave 3 roadmap sync (WAVE3_ROADMAP_SYNC_GATE=1, issue #1802)..."
Expand Down
1 change: 1 addition & 0 deletions script/ci-defaults.env
Original file line number Diff line number Diff line change
Expand Up @@ -22,3 +22,4 @@ export BOOTSTRAP_SELFHOST_PROBE_UPDATE="${BOOTSTRAP_SELFHOST_PROBE_UPDATE:-0}"
export BOOTSTRAP_LOOP_PROBE_GATE="${BOOTSTRAP_LOOP_PROBE_GATE:-0}"
export CAPABILITY_SYNTAX_CHECK="${CAPABILITY_SYNTAX_CHECK:-1}"
export M2_SPINE_ISSUE_HYGIENE_GATE="${M2_SPINE_ISSUE_HYGIENE_GATE:-1}" # default on (#1819); opt-out for bulk spine PRs
export WAVE3_ROADMAP_SYNC_GATE="${WAVE3_ROADMAP_SYNC_GATE:-1}" # default on (#1814); opt-out WAVE3_ROADMAP_SYNC_GATE=0 for doc-only iteration
2 changes: 1 addition & 1 deletion script/ci-docker-run.sh
Original file line number Diff line number Diff line change
Expand Up @@ -16,7 +16,7 @@ ci_docker_run() {
-e "PHP_COMPILER_LLVM_MEMORY_LIMIT=${PHP_COMPILER_LLVM_MEMORY_LIMIT}" \
-e "PHP_COMPILER_SKIP_SERVE_TESTS=${PHP_COMPILER_SKIP_SERVE_TESTS:-}" \
-e "JIT_PREFLIGHT_GATE=${JIT_PREFLIGHT_GATE:-}" \
-e "WAVE3_ROADMAP_SYNC_GATE=${WAVE3_ROADMAP_SYNC_GATE:-0}" \
-e "WAVE3_ROADMAP_SYNC_GATE=${WAVE3_ROADMAP_SYNC_GATE:-1}" \
-e "M2_SPINE_ISSUE_HYGIENE_GATE=${M2_SPINE_ISSUE_HYGIENE_GATE:-1}" \
-e "EXAMPLES_README_SYNC_GATE=${EXAMPLES_README_SYNC_GATE:-0}" \
"$@"
Expand Down
31 changes: 31 additions & 0 deletions test/unit/CiScriptsTest.php
Original file line number Diff line number Diff line change
Expand Up @@ -203,6 +203,29 @@ public function testCiFastDoesNotRunDeploySmokeGate(): void
$this->assertStringNotContainsString('deploy-smoke.sh', $body);
}

public function testCiDefaultsEnvDefinesWave3RoadmapSyncGateOn(): void
{
$defaults = (string) file_get_contents(dirname(__DIR__, 2).'/script/ci-defaults.env');
$this->assertStringContainsString('WAVE3_ROADMAP_SYNC_GATE="${WAVE3_ROADMAP_SYNC_GATE:-1}"', $defaults);
}

public function testCiFastRunsWave3RoadmapSyncViaInventoryChecks(): void
{
$fast = (string) file_get_contents(dirname(__DIR__, 2).'/script/ci-fast.sh');
$this->assertStringContainsString('ci_run_inventory_checks', $fast);

$common = (string) file_get_contents(dirname(__DIR__, 2).'/script/ci-common.sh');
$this->assertStringContainsString('ci_run_wave3_roadmap_sync_check', $common);
$this->assertStringContainsString('check-wave3-roadmap-sync.php', $common);
$this->assertStringContainsString('WAVE3_ROADMAP_SYNC_GATE:-1', $common);
}

public function testCiDockerRunPassesWave3RoadmapSyncGateDefaultOn(): void
{
$body = (string) file_get_contents(dirname(__DIR__, 2).'/script/ci-docker-run.sh');
$this->assertStringContainsString('WAVE3_ROADMAP_SYNC_GATE=${WAVE3_ROADMAP_SYNC_GATE:-1}', $body);
}

public function testCiDefaultsEnvDefinesExamplesAotSmokeGateOn(): void
{
$defaults = (string) file_get_contents(dirname(__DIR__, 2).'/script/ci-defaults.env');
Expand Down Expand Up @@ -386,6 +409,14 @@ public function testLocalCiMatrixDocumentsJitPreflightGate(): void
$this->assertStringContainsString('--preflight', $doc);
}

public function testLocalCiMatrixDocumentsWave3RoadmapSyncGate(): void
{
$doc = (string) file_get_contents(dirname(__DIR__, 2).'/docs/local-ci-matrix.md');
$this->assertStringContainsString('WAVE3_ROADMAP_SYNC_GATE', $doc);
$this->assertStringContainsString('check-wave3-roadmap-sync.php', $doc);
$this->assertMatchesRegularExpression('/\| `WAVE3_ROADMAP_SYNC_GATE` \| `1` \|/', $doc);
}

public function testLocalCiMatrixDocumentsMiniWebAppGates(): void
{
$doc = (string) file_get_contents(dirname(__DIR__, 2).'/docs/local-ci-matrix.md');
Expand Down