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
6 changes: 1 addition & 5 deletions .github/actions/setup-env/action.yml
Original file line number Diff line number Diff line change
Expand Up @@ -91,14 +91,10 @@ runs:
# Same-suffix prefix first (this job's flavor across go.sum bumps),
# then the bare prefix as a cold-start fallback — it matches any
# other job's suffixed entry, which still carries the shared module
# cache even if its build objects don't apply. The unversioned (v1)
# prefixes are transitional warm-start fallbacks; drop them once a
# v2 entry has been saved on main.
# cache even if its build objects don't apply.
restore-keys: |
gobuild-v2-${{ runner.os }}-go${{ inputs.go-cache-suffix }}-
gobuild-v2-${{ runner.os }}-go-
gobuild-${{ runner.os }}-go${{ inputs.go-cache-suffix }}-
gobuild-${{ runner.os }}-go-

- uses: actions/cache@27d5ce7f107fe9357f9df03efb73ab90386fccae # v5.0.5
if: ${{ inputs.golangci == 'true' }}
Expand Down
21 changes: 1 addition & 20 deletions .github/workflows/README.md
Original file line number Diff line number Diff line change
Expand Up @@ -153,7 +153,7 @@ Queue settings live in the `main branch protection` ruleset's

| Cache | Key | Saved by | Notes |
|---|---|---|---|
| Go modules + build | `gobuild-v2-<os>-go<suffix>-<go.sum hash>` | every Go job (own suffix) | Suffix partitions by compile flavor (`-lint`, `-unit`, `-integration`, `-e2e-cov`, `-cov`). v2 = the GOTOOLCHAIN=auto toolchain rides in `~/go/pkg/mod` (no setup-go). **TODO:** drop the unversioned v1 restore-keys fallbacks once a v2 entry exists on main. |
| Go modules + build | `gobuild-v2-<os>-go<suffix>-<go.sum hash>` | every Go job (own suffix) | Suffix partitions by compile flavor (`-lint`, `-unit`, `-integration`, `-e2e-cov`, `-cov`). v2 = the GOTOOLCHAIN=auto toolchain rides in `~/go/pkg/mod` (no setup-go). |
| golangci binary + analysis | `golangci-<os>-<Makefile,.golangci.yml hash>` | lint | Analysis cache: ~10s warm vs ~90s. `.bin` also carries shellcheck + actionlint. |
| pnpm store | `pnpm-<os>-<lockfile hash>` | any node job on miss | Store path resolved from pnpm at runtime. docs-build prunes before its save on a key rotation. |
| Playwright Chromium | `playwright-<os>-<lockfile hash>` | docs-build | rehype-mermaid renders via headless Chrome at docs build. |
Expand Down Expand Up @@ -240,22 +240,3 @@ suite's wall-clock becomes a problem again, start here:
- Re-run failed jobs is safe everywhere: fragments/dist artifacts
persist per-run, `download-artifact` finds them instantly, and the
sticky preview comment updates in place.

## Transition notes (delete when done)

- **v1 gobuild restore-keys** in setup-env: drop after the first main
run saves `gobuild-v2-*` entries.
- **docs-preview comment guard**: the comment step skips with a notice
until `scripts/ci/docs-preview-comment.sh` exists on main (it executes
from the trusted-main checkout). Remove the guard after merge.
- **PR-title script guard**: the `PR title` job's step skips with a notice
until `scripts/ci/check-pr-title.sh` exists on main (same trusted-main
checkout). Title enforcement is advisory via `PR housekeeping` until
then. Remove the guard after merge.
- **Merge-queue ruleset flip**: AFTER the PR adding the `merge_group:`
trigger lands on main (ordering matters — flipping first strands every
other queued PR with no CI run), update the `main branch protection`
ruleset: add the `merge_queue` rule and set
`strict_required_status_checks_policy: false` (prepared payload:
`gh api -X PUT repos/Wave-RF/WaveHouse/rulesets/15353356 --input
tmp/ruleset-merge-queue.json`). Then delete this note.
22 changes: 2 additions & 20 deletions .github/workflows/ci.yml
Original file line number Diff line number Diff line change
Expand Up @@ -113,16 +113,7 @@ jobs:
PR_NUMBER: ${{ github.event.pull_request.number }}
# Logic lives in scripts/ci/check-pr-title.sh (shellcheck-gated),
# resolved from this trusted-main checkout like scripts/lint-pr-title.sh.
# Transition guard: until this PR merges, main doesn't have the
# script yet — skip with a notice (housekeeping.yml's advisory
# mirror still reds a bad title, and this PR's own title is valid).
# Drop the guard once it's on main. See README "Transition notes".
run: |
if [ ! -f scripts/ci/check-pr-title.sh ]; then
echo "::notice::scripts/ci/check-pr-title.sh is not on the default branch yet — title checked by PR housekeeping during transition."
exit 0
fi
scripts/ci/check-pr-title.sh
run: scripts/ci/check-pr-title.sh

# ── Static checks ──────────────────────────────────────────────────
lint:
Expand Down Expand Up @@ -497,10 +488,6 @@ jobs:
# would skip after the upload step's exit 1 — so a failed deploy is
# noted rather than leaving a stale "live" comment. Skipped only when
# no upload was attempted (outcome == 'skipped').
#
# Transition guard: until this PR merges, main doesn't have the script
# yet — skip with a notice instead of failing (the preview URL is still
# in the step summary). Drop the guard once it's on main.
- name: Comment docs preview status
if: ${{ !cancelled() && (steps.preview.outcome == 'success' || steps.preview.outcome == 'failure') }}
continue-on-error: true
Expand All @@ -510,12 +497,7 @@ jobs:
URL: ${{ steps.preview.outputs.url }}
SHA: ${{ github.event.pull_request.head.sha }}
PREVIEW_OUTCOME: ${{ steps.preview.outcome }}
run: |
if [ ! -f scripts/ci/docs-preview-comment.sh ]; then
echo "::notice::scripts/ci/docs-preview-comment.sh is not on the default branch yet — skipping the sticky comment."
exit 0
fi
scripts/ci/docs-preview-comment.sh
run: scripts/ci/docs-preview-comment.sh

# Production: push (or manual dispatch) on main → publish the active
# version served on wavehouse.dev. Gated on the full pipeline (lint +
Expand Down