deepseek-harness/.github/workflows
imccyu 8d6f5164ab fix(release): make publication retry, space out, and skip what landed
A landlock publication failed with `E409 Failed to save packument` on the
second of three packages. The registry answers a write it could not commit that
way, and publishing several packages back to back is what provokes it.

Neither publish path could recover. The native sequence published from a shell
loop of bare `npm publish` calls: no retry, and no way to resume, because the
registry rejects a repeat of an existing version permanently — so a failure
partway through left the release stuck. publish.ts skipped versions already
present, which made a re-run safe, but had no retry either.

Both paths now attempt a tarball up to four times, space writes at least two
seconds apart, and back off 2s/4s/8s between attempts. Every retry re-reads the
registry first, because a reported failure can answer a write that landed
anyway: a version that now exists with this tarball's integrity counts as
published rather than as one to place again. That same re-read is what turns a
mid-run `E403 cannot publish over the previously published versions` into a
skip when the bytes match, and leaves it a hard failure when they do not.

The native sequence gets the registry comparison publish.ts already had, through
its own script rather than shared code — the two sequences keep separate
publication paths. Its publish job now checks out the repository, which the
shell loop did not need.

Verified against a scripted registry: a clean publish, one E409 then success, an
E409 whose write landed anyway, E409 on every attempt (fails after four), and a
version already present with matching integrity (publishes nothing).
2026-08-13 15:31:09 +08:00
..
build-exe-for-python-sdk.yml fix(ci): require Python runtime release path 2026-08-12 16:30:35 +08:00
ci.yml refactor: apply repository naming contract 2026-08-13 00:54:38 +08:00
docs-pages.yml ci: disable session telemetry in all GitHub workflows 2026-07-31 01:34:41 +08:00
e2b-e2e.yml ci(e2b): add manual live sandbox workflow 2026-08-09 00:51:56 +08:00
e2e.yml ci: disable session telemetry in all GitHub workflows 2026-07-31 01:34:41 +08:00
expected-filenames.yml ci: disable session telemetry in all GitHub workflows 2026-07-31 01:34:41 +08:00
issue-lifecycle.yml fix(ci): narrow issue lifecycle review events 2026-08-10 23:35:05 +08:00
issue-policy.yml chore: enable Issue management automation 2026-08-03 19:53:36 +08:00
landlock-run-release.yml fix(release): make publication retry, space out, and skip what landed 2026-08-13 15:31:09 +08:00
landlock-run.yml fix(landlock-run): publish under deepseek scope 2026-08-06 14:41:17 +08:00
pi-ai-provider-e2e.yml ci: disable session telemetry in all GitHub workflows 2026-07-31 01:34:41 +08:00
python-release.yml fix: address Python release review feedback 2026-08-11 20:09:33 +08:00
release-vendor.yml fix(release): close the review findings on the release sequences 2026-08-11 01:26:36 +08:00
release.yml build(release): publish the vendored framework and the native packages publicly 2026-08-13 14:05:48 +08:00
sandbox.yml refactor: apply repository naming contract 2026-08-13 00:54:38 +08:00