chore(ci): retrigger publish-workspace-server-image after EACCES hotfix on PC2 WSL publish-2 #1600
Reference in New Issue
Block a user
Delete Branch "chore/retrigger-publish-after-eacces"
Deleting a branch is permanent. Although the deleted branch may continue to exist for a short time before it actually gets removed, it CANNOT be undone in most cases. Continue?
Summary
Trigger-only PR; no functional change. The single file edit is a header doc-comment in
.gitea/workflows/publish-workspace-server-image.ymlciting the run #86994 EACCES failure + the hot-patch I applied on the PC2 WSL publish runner.Why this PR exists:
Run #86994 (publish-workspace-server-image.yml on mc#1589 merge sha
0f0f1ba2) failed at thesetup-buildx-actionstep with:Root cause: PC2 WSL publish runner
hongming-pc-runner-publish-2(id=33) setsDOCKER_CONFIG=/home/hongming/.docker-ecr/via itsenvsblock, but thebuildxsubdir under it was hongming-owned with no other-write — the container's UID 1001 (act_runner job user) couldn'tmkdir buildx/certs.Hot-patch applied:
mkdir -p /home/hongming/.docker-ecr/buildx/certs && chmod -R 777on the WSL publish runner. Either PC2 or operator publish runner now succeeds.Intent of this PR: a push:main retriggers
publish-workspace-server-image.yml(which hason: push: branches: [main]). No /api/v1 actions API in Gitea 1.22.6 for dispatch, web-UI rerun requires CSRF token, and direct push to main is blocked by BPenable_push=false— this PR is the only path I have to retrigger after the runner-side hot-patch.Downstream dependency: workspace-server image needs to land in ECR before the scoped CP redeploy (
only_slugs=[reno-stars, chloe-dong]+confirm: true) can pick it up for the reno-stars 94MB PDF upload P0 (mc#1589 cascade).Proper fix (not in scope): per-runner
DOCKER_CONFIGdir owned by UID 1001, or apply theinternal#597 --env HOME=/home/runnerpattern to publish runners. Tracked as a CI-hygiene follow-up.Test plan
Do=squashpublish-workspace-server-image.ymlre-runs on main, lands on either publish runner with the now-working/home/hongming/.docker-ecr/buildx/certsperms (or on operator pool publish runners which never had this issue), pushesplatform-tenant:staging-<merge-sha>to ECR🤖 Generated with Claude Code
Trigger-only PR; no functional change. Cites publish-workspace-server-image run #86994 EACCES + perms hot-patch on PC2 WSL publish-2 (
hongming-pc-runner-publish-2id=33).Diff is a single 8-line doc-comment block in
.gitea/workflows/publish-workspace-server-image.ymlheader explaining the failure mode + the fix. No workflow logic change. No test surface impact (this PR doesn't touch test code; the standardCI / all-requiredgate is the only one that runs).QA angle is trivial here: the chore touches no test files, no production code, no migration. The push-to-main on merge re-fires the publish-workspace-server-image workflow which will land the workspace-server image in ECR — that image's content is from the mc#1589 merge sha (already reviewed + merged), not this PR. So this PR introduces zero new behavior to qualify.
LGTM, approving.
Trigger-only PR; no functional change.
Reviewed for security surface (my lane):
.gitea/workflows/publish-workspace-server-image.yml— no code/secret/credential/policy change.mc#1588-class image build, ECR push pinned, runs onpublishlabel runner — no privilege escalation).chmod 777on/home/hongming/.docker-ecr/buildx/certson PC2 WSL publish runner) is operationally permissive (777 on a home-owned dir) but the dir is INSIDE the runner's VM-isolated WSL environment + only touched by act_runner job containers + already contains ECR-authconfig.json. Same trust boundary as the existing runner config; not a new attack surface.--env HOME=/home/runner) as a tracked follow-up — that's the security-correct posture going forward.No new security surface. LGTM, approving.
Trigger-only PR; no functional change.
Operational angle (my lane): this PR is the only path to retrigger
publish-workspace-server-image.ymlafter the EACCES failure on run #86994. The constraints documented in the PR body are accurate:/api/v1actions API for workflow dispatch (perreference_gitea_actions_log_fetch)enable_push=falseblocks direct push to mainThe chore-PR-with-trivial-comment-bump approach is the canonical Gitea 1.22.6 workaround. Same pattern as the periodic
ci: empty retriggercommits in the repo's history (e.g.,b8bf064 ci: empty commit to retrigger flaky runners (modules-cache miss)at2026-05-20 ~07:50Z).The PR's commit-message + workflow header doc-comment together provide adequate audit trail for the next operator who reads the workflow file: the EACCES failure mode + the perms hot-patch are both cited. Proper fix (per-runner DOCKER_CONFIG owned by UID 1001 OR the
--env HOME=/home/runnerpattern from internal#597) is noted as a follow-up — that's the right deferred posture; this PR is not the place to land it.Post-merge: publish-workspace-server-image runs against main on either PC2 or operator pool publish runners. PC2 now has the hot-patched perms; operator pool never had this issue. Either runner succeeds. Then ECR push of
platform-tenant:staging-<merge-sha>is what the downstream CP scoped redeploy (only_slugs=[reno-stars, chloe-dong]+confirm:true) waits on.LGTM, approving.