Skip to content

Commit 1451768

Browse files
committed
ci: add HUD installer regression gate to canary + e2e workflows (#1490)
Adds the v5.6.2 regression gate to two CI workflows so a broken installer cannot reach canary or release: 1. canary.yml — new ``plugin-hooks-tests`` job (Python pytest only, no node/yarn build needed) blocks ``publish-canary`` via ``needs``. Triggered on master/stag-** push, so master merges are gated before any canary npm publish. 2. e2e-plugin.yml — adds the same pytest invocation + simulation script step to the existing ``e2e-plugin-hooks`` job, and extends ``paths`` to include ``packages/claude-code-plugin/tests/**`` and ``scripts/verify-install-simulation.sh`` so PR-level changes trigger the gate. e2e-plugin runs on non-master branches, so PRs see the gate before merge. Together the two jobs cover both PR review (e2e-plugin) and post-merge canary publish (canary), so the v5.6.0/v5.6.1 failure mode (installer ships without lib sync, all users see the fallback face) cannot recur silently. Test invocations cover all five v5.6.2 hotfix test files: - tests/test_atomic_sync_with_lib.py (9 tests) - tests/test_session_start_hud.py (20 tests) - tests/test_install_hook_with_lib.py (4 tests) - tests/test_health_check.py (35 tests) - scripts/verify-install-simulation.sh (subprocess render gate) actions/setup-python pin reused from existing e2e-plugin.yml entry (SHA a26af69be951a213d495a4c3e4e4022e16d87065 = v5.6.0). Refs #1490
1 parent 1ef0375 commit 1451768

2 files changed

Lines changed: 49 additions & 0 deletions

File tree

.github/workflows/canary.yml

Lines changed: 34 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -21,7 +21,41 @@ permissions:
2121
contents: read
2222

2323
jobs:
24+
plugin-hooks-tests:
25+
# Regression gate for #1490 — HUD installer must sync hooks/lib
26+
# alongside the script. This job runs the Python pytest suites for
27+
# the plugin hooks (no node/yarn build needed) so a broken installer
28+
# cannot ship to canary or release.
29+
if: github.repository == 'JeremyDev87/codingbuddy'
30+
runs-on: ubuntu-latest
31+
timeout-minutes: 5
32+
steps:
33+
- name: Checkout code
34+
uses: actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd # v6.0.2
35+
36+
- name: Setup Python
37+
uses: actions/setup-python@a26af69be951a213d495a4c3e4e4022e16d87065 # v5.6.0
38+
with:
39+
python-version: '3.11'
40+
41+
- name: Install pytest
42+
run: python3 -m pip install --quiet pytest
43+
44+
- name: Run plugin hook test suites (#1490 regression gate)
45+
working-directory: packages/claude-code-plugin
46+
run: |
47+
python3 -m pytest \
48+
tests/test_atomic_sync_with_lib.py \
49+
tests/test_session_start_hud.py \
50+
tests/test_install_hook_with_lib.py \
51+
tests/test_health_check.py \
52+
-v --tb=short
53+
54+
- name: HUD install simulation (#1490 end-to-end gate)
55+
run: bash packages/claude-code-plugin/scripts/verify-install-simulation.sh
56+
2457
publish-canary:
58+
needs: plugin-hooks-tests
2559
if: github.repository == 'JeremyDev87/codingbuddy'
2660
runs-on: ubuntu-latest
2761
timeout-minutes: 20

.github/workflows/e2e-plugin.yml

Lines changed: 15 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -7,6 +7,8 @@ on:
77
- stag-**
88
paths:
99
- 'packages/claude-code-plugin/hooks/**'
10+
- 'packages/claude-code-plugin/tests/**'
11+
- 'packages/claude-code-plugin/scripts/verify-install-simulation.sh'
1012
- 'tests/e2e/plugin-hooks/**'
1113
- .github/workflows/e2e-plugin.yml
1214

@@ -50,6 +52,19 @@ jobs:
5052
- name: Run E2E plugin hook tests
5153
run: python3 -m pytest tests/e2e/plugin-hooks/ -v --timeout=30 --tb=short
5254

55+
- name: Plugin hook unit/E2E regression suites (#1490)
56+
working-directory: packages/claude-code-plugin
57+
run: |
58+
python3 -m pytest \
59+
tests/test_atomic_sync_with_lib.py \
60+
tests/test_session_start_hud.py \
61+
tests/test_install_hook_with_lib.py \
62+
tests/test_health_check.py \
63+
-v --tb=short
64+
65+
- name: HUD install simulation (#1490 end-to-end gate)
66+
run: bash packages/claude-code-plugin/scripts/verify-install-simulation.sh
67+
5368
e2e-plugin-docker:
5469
if: github.repository == 'JeremyDev87/codingbuddy'
5570
runs-on: ubuntu-latest

0 commit comments

Comments
 (0)