Repository navigation
ci: release gate — venue on v1.8.0 then current, hook tests without jq; publish depends on both (GIT-83) - #47
Merged
1 commit merged intoSep 22, 2026
Merged
1 commit merged into
1 commit merged into
Conversation
…ok tests without jq (GIT-83, GIT-112) - venue-gate (v* tags and workflow_dispatch): puts the disposable venue on `git show v1.8.0:schema/setup.sql`, runs the driver (flow, egress --usage 5, projects when the driver has it), applies the current setup.sql twice on top, and runs flow again. Missing secrets fail the job; a concurrency group keeps two runs from wiping each other's venue data. Driver reports are uploaded (netlogs hold method/path/status/size only). - scripts/venue-schema.sh: reset-to / apply via psql, one transaction, ON_ERROR_STOP, PostgREST schema reload. Refuses production (by ref and by URL) and any DB URL that does not name VENUE_REF, before connecting. - tests/e2e/venue/reset-gitmem-objects.sql: drops only what setup.sql creates. - hooks-without-jq (every run): hooks/tests/test-hooks.sh in node:20-bookworm-slim, asserting neither jq nor ps is installed (GIT-112). - publish needs build, hooks-without-jq and venue-gate. Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
What
A release gate in
ci.yml: publish now depends on the venue driver passing against the v1.8.0 schema and then the current one, and on the hook tests passing on a runner withoutjq(GIT-83, GIT-112).venue-gate(v* tags, plusworkflow_dispatchso you can run it before tagging):git show v1.8.0:schema/setup.sql→scripts/venue-schema.sh reset-toputs the disposable venue on exactly the customer floor.flow, thenegress --rows 250 --usage 5, thenprojectswhen the driver has that mode (it arrives with fix: never resume a session of another project (GIT-86) #37).scripts/venue-schema.sh apply schema/setup.sqltwice: the current schema must apply on top of v1.8.0, and be re-applicable.flowagain on the current schema.Missing secrets fail the job, because a skipped gate would let publish through. A
concurrency: gitmem-venuegroup stops two runs from wiping each other's venue data.scripts/venue-schema.sh:reset-to/applyviapsql,--single-transaction,ON_ERROR_STOP, and a PostgREST schema reload at commit. Before connecting, it refuses production (cjptxyezuxdiinufgrrm), by ref and by URL, and any DB URL that doesn't nameVENUE_REF.--dry-runprints the plan.tests/e2e/venue/reset-gitmem-objects.sql: drops only the objectssetup.sqlcreates.hooks-without-jqruns on every CI run, not just tags, since it's cheap and it's the regression that went unnoticed. It runshooks/tests/test-hooks.shinnode:20-bookworm-slimand first asserts that neitherjqnorpsis installed.publish: needs: [build, hooks-without-jq, venue-gate].VENUE_REF=vujndhcumgroztfkkdusVENUE_SUPABASE_URL=https://vujndhcumgroztfkkdus.supabase.coVENUE_SERVICE_ROLE_KEYVENUE_DB_URL: the venue's session-poolerpostgresql://postgres.vujndhcumgroztfkkdus:<db password>@aws-0-us-east-1.pooler.supabase.com:5432/postgreshooks-without-jqis red on every PR: onmainthe Stop hook fails 3 tests withoutjq. That's the bug this job exists to catch.How to test
The venue step sequence, run locally against the venue with a
mainbuild (as the first tag would). The only difference: the schema steps usedsupabase db pushwith the same SQL files, becausepsqland the DB password aren't available here.Not run end to end: the
psqltransport insidevenue-schema.sh, and the workflow on GitHub itself. Run it once with Actions → CI → Run workflow after adding the secrets.venue-schema.shguards (--dry-run): venue OK → exit 0; production ref → refused (2); production in the URL with the venue ref elsewhere in it → refused; URL not naming the venue → refused; no URL → refused.hooks-without-jq, emulated locally. APATHof symlinks to every system tool exceptjqandps, underenv -i:origin/mainpsfix (f1a1842)ps)c18e82a)So the job catches both GIT-112 and the
psvariant that building it uncovered, which #39 now fixes.Also caught while testing: my first version detected the
projectsmode withgrep '"projects"'. That matches a.claude/projectspath already inmain's driver, so the gate would have run a modemaindoesn't have and failed. It now matches the usage stringflow|egress|projects, verified:main→ no-projects, #37 → has-projects.YAML parses; job graph
build,hooks-without-jq,venue-gate→publish. There's noactionlinthere.Item text
The ticket text I received ended at "publish depends on". I read it as "publish depends on this gate". Say if you meant something else.
Checklist
🤖 Generated with Claude Code