mirror of
https://github.com/garrytan/gstack.git
synced 2026-10-31 22:14:25 +01:00
v1.91.148.0 ci(seed): seed PRs also dispatch Quality gate, and say which runs are their checks (#3297)
* ci(seed): seed PRs also dispatch Quality gate, and say which runs are their checks Co-authored-by: capy-ai[bot] <230910855+capy-ai[bot]@users.noreply.github.com> * chore: stamp v1.91.148.0 Co-authored-by: capy-ai[bot] <230910855+capy-ai[bot]@users.noreply.github.com> --------- Co-authored-by: capy-ai[bot] <230910855+capy-ai[bot]@users.noreply.github.com>
This commit is contained in:
1 parent
c205e226a1
commit
9665621d18
7 files changed
+22
-6
No files matched your search
@@ -161,7 +161,7 @@ jobs:
|
||||
- Files that failed while recording (durations kept; this PR's own free checks decide): $failed_line
|
||||
- Seed growth ratchet (60 s ceiling, shrink-only allowlist): $ratchet_line
|
||||
|
||||
Data only. Stamp and merge per docs/ship-policy.md; the stamp push runs the full PR checks.
|
||||
Data only. This run dispatched Free Tests (the required free-tests check), Windows Free Tests and Quality gate on this branch; those are this PR's checks. The pull_request runs wait as "action required" because a token-opened PR never starts them without approval. Stamp and merge per docs/ship-policy.md; the stamp push runs the full PR checks.
|
||||
EOF
|
||||
if [ -n "$number" ]; then
|
||||
gh pr edit "$number" --body-file pr-body.md
|
||||
@@ -170,3 +170,4 @@ jobs:
|
||||
fi
|
||||
gh workflow run free-tests.yml --repo "$GITHUB_REPOSITORY" --ref "$branch"
|
||||
gh workflow run windows-free-tests.yml --repo "$GITHUB_REPOSITORY" --ref "$branch"
|
||||
gh workflow run quality-gate.yml --repo "$GITHUB_REPOSITORY" --ref "$branch"
|
||||
@@ -1,5 +1,13 @@
|
||||
# Changelog
|
||||
|
||||
## [1.91.148.0] - 2026-10-19
|
||||
|
||||
**Weekly seed PRs now get the credential scan as well as the free suites.** A pull request the recorder opens with the workflow token never starts its own `pull_request` checks. GitHub holds them as "action required". So the recorder dispatches its checks on the bot branch instead.
|
||||
|
||||
### Changed
|
||||
- **`free-durations-record.yml` also dispatches Quality gate** on `bot/free-duration-seeds`, next to Free Tests (the required `free-tests` check) and Windows Free Tests.
|
||||
- **The seed PR body says the dispatched runs are its checks** and explains why its pull_request runs wait for approval.
|
||||
|
||||
## [1.91.147.0] - 2026-10-19
|
||||
|
||||
**The free-suite duration seeds are current again.** This is the first refresh from the weekly recorder. It adds 14 Linux and 6 Windows test files that the shard packers had been placing at the 99th-percentile estimate.
|
||||
|
||||
@@ -1,4 +1,4 @@
|
||||
# gstack digest v1.91.147.0 — regenerate/re-copy after upgrading gstack
|
||||
# gstack digest v1.91.148.0 — regenerate/re-copy after upgrading gstack
|
||||
|
||||
Behavioral rules from gstack (https://github.com/garrytan/gstack), compressed
|
||||
for agent hosts without a full skill install. The full skills add workflows,
|
||||
|
||||
@@ -1379,7 +1379,10 @@ refresh to a maintainer.
|
||||
`windows-free-tests.yml`'s `record_durations` path. When either recording adds
|
||||
or drops a test file, it force-updates the `bot/free-duration-seeds` branch,
|
||||
opens or refreshes one seed PR whose body states the ratchet result, and
|
||||
dispatches the free lanes on it. A file that fails while recording turns its
|
||||
dispatches Free Tests, Windows Free Tests and Quality gate on it. Those
|
||||
dispatched runs are the seed PR's checks, and Free Tests supplies the required
|
||||
`free-tests` check. GitHub holds the pull_request runs of a token-opened PR as
|
||||
"action required" until someone approves them. A file that fails while recording turns its
|
||||
job red but keeps its duration, and the PR body names it; the seed PR's own
|
||||
free checks decide whether the tree is healthy. An interrupted recording
|
||||
uploads no seed, and more than 5 red files on either OS proposes nothing. The
|
||||
|
||||
+1
-1
@@ -1,6 +1,6 @@
|
||||
{
|
||||
"name": "gstack",
|
||||
"version": "1.91.147",
|
||||
"version": "1.91.148",
|
||||
"description": "Garry's Stack — Claude Code skills + fast headless browser. One repo, one install, entire AI engineering workflow.",
|
||||
"license": "MIT",
|
||||
"type": "module",
|
||||
|
||||
@@ -81,7 +81,11 @@ test('the propose step touches only the two seeds, never the allowlist, on one b
|
||||
expect(script).not.toContain('free-test-seed-allowlist.json');
|
||||
expect(script).toContain('branch=bot/free-duration-seeds');
|
||||
expect(script).toContain('bun test test/free-seed-ratchet.test.ts');
|
||||
expect(script).toContain('gh workflow run free-tests.yml');
|
||||
for (const workflow of ['free-tests.yml', 'windows-free-tests.yml', 'quality-gate.yml']) {
|
||||
expect(script).toContain(`gh workflow run ${workflow} --repo "$GITHUB_REPOSITORY" --ref "$branch"`);
|
||||
expect(load(workflow).on).toHaveProperty('workflow_dispatch');
|
||||
}
|
||||
expect(script).toContain('those are this PR\'s checks');
|
||||
expect(proposeStep.env.OPEN_PR).toBe("${{ github.ref == 'refs/heads/main' && (github.event_name == 'schedule' || inputs.open_pr) }}");
|
||||
expect(script.indexOf('if [ "$OPEN_PR" != true ]')).toBeLessThan(script.indexOf('git push'));
|
||||
expect(recorder.on.workflow_dispatch.inputs.open_pr).toMatchObject({ type: 'boolean', default: true });
|
||||
|
||||
Reference in new issue
Block a user