Repository navigation
Conversation
|
Review findings fixed in fad6446:
All existing tests still pass ( |
|
Review findings fixed in 7bab287:
All tests pass: |
|
No review findings were attached, so I checked the diff independently and found one real break, fixed in 0ce3c44.
The branch merges cleanly with origin/main, so no rebase was needed. |
|
Review fix (788e62a): |
|
Rebased onto origin/main; TestPackageSizeBudget now passes (ratchet failure was due to main moving, not this branch). Force-pushed c970ab9. |
|
Rebased onto origin/main to resolve merge conflict in .github/workflows/ci.yml. Kept both sides: D-0140 contract-check comment from main and D-0204 docker-publish-version/concurrency test steps plus contract gate from this branch. Workflow lint passes (78 files, no duplicate keys). Force-pushed to dw9-cli-2. |
|
Review fixes: removed the re-added |
|
nself-ci failed on go:sdk-remote-mutation. Main's #1015 moved the |
…tag, drop unused id-token (D-0204)
…rency on dispatch version (D-0204)
…tch input - Concurrency group now normalises bare dispatch input (e.g. 1.4.13) to v1.4.13 via startsWith/format so it matches workflow_run head_branch; blank input falls through to github.ref instead of producing an empty suffix that would race with other runs. - Added scripts/ci/docker-publish-concurrency_test.sh asserting the expression contains the dispatch-keys-on-inputs-version branch, the v-prefix normalisation, and the blank-input guard; wired into ci.yml. - Added two mutant-killing cases to docker-publish-version_test.sh verifying bare and v-prefixed dispatch inputs both produce tag=v<ver>.
….yml invalid YAML (D-0204) The version-test step added in a64d92f was indented 5 spaces against its 6-space siblings, so GitHub could not parse ci.yml at all. Re-indent it, drop a stale duplicate comment in docker-publish.yml, and make docker-publish-concurrency_test.sh parse both workflows so this class of break fails the gate.
…e before writing (D-0204)
…r-publish tests (D-0204)
|
Review fixes: removed the hard-coded $HOME/nself-worker/tmp from both tests (plain mktemp -d; version_test back to base for that line). Dropped the self-referential ordering block in promote_test and added a real check in docker-publish-concurrency_test.sh that promote-latest sets queue: max (verified it fails when that line is removed from the workflow, passes with it). The two D-0204 dispatch-normalisation cases in version_test are kept: they cover the concurrency-key tag output, not the temp dir. |
D-0204: docker-publish follow-ups from P7-HYG-06 review
What changed
.github/workflows/ci.yml: gated thedocker-publish-version_test.shstep toubuntu-latestonly, and added steps for the concurrency and promote tests (also ubuntu only). Themake contract-checkgate is not re-added:nself-ciruns it via.nself/ci.yaml(D-0140)..github/workflows/docker-publish.yml: the concurrency group keys on the normalisedv<ver>tag forworkflow_dispatch(with or without a leadingv; blank input falls back togithub.ref), so a dispatch and aworkflow_runfor the same tag serialise.promote-latestjob (needsdocker, runs only whendockeroutputlatest == 'true'). It sits in one shared concurrency group,docker-publish-latest, withcancel-in-progress: false, so promotions run one at a time. It logs in to Docker Hub and runsscripts/ci/docker-publish-promote.sh.scripts/ci/docker-publish-promote.sh: inside that lock it re-reads GitHub's latest release. IfTAGis still latest it runsdocker buildx imagetools create -t nself/nself:latest nself/nself:<ver>(no rebuild, same index digest). If not, it logs a notice and exits 0. A failed read or failedimagetools createexits 1. This stops an older release's run that finishes last from moving:latestbackwards.id-token: writefrom the docker job.Verification
bash scripts/ci/docker-publish-version_test.sh: all cases pass.bash scripts/ci/docker-publish-concurrency_test.sh: asserts the group expression (dispatch keyed on normalisedinputs.version, blank falls togithub.ref); fails on the pre-fix expression, passes on the fix.bash scripts/ci/docker-publish-promote_test.sh: stubbedghanddocker; covers promote, skip when no longer latest, failed read, failed create, missing env.ci.ymlparses as valid YAML.