ci: remove shared temp cleanup from tag release workflows #15

Closed
opened 2026-09-30 02:08:43 +08:00 by Breadway · 3 comments
Owner

The current rc-release.yml deletes /tmp/bread-ecosystem-ci-* before creating a fresh clone, which can remove another concurrent release job's checkout. release.yml also deletes and reuses the fixed /tmp/bread-ecosystem-ci path, which is shared across runner jobs. Use unique mktemp directories in these workflows and remove the shared-path deletion. Keep this scoped to breadpaper's release workflow copies. Follow-up to ECO-28.

The current `rc-release.yml` deletes `/tmp/bread-ecosystem-ci-*` before creating a fresh clone, which can remove another concurrent release job's checkout. `release.yml` also deletes and reuses the fixed `/tmp/bread-ecosystem-ci` path, which is shared across runner jobs. Use unique `mktemp` directories in these workflows and remove the shared-path deletion. Keep this scoped to breadpaper's release workflow copies. Follow-up to ECO-28.
Author
Owner

Confirmed the unsafe cleanup on current Forgejo main. Implementation is blocked in this runtime because outbound git SSH is denied: GIT_SSH_COMMAND='ssh -F /dev/null -o StrictHostKeyChecking=accept-new' git -C /home/breadway/Projects/breadpaper ls-remote origin refs/heads/main fails with socket: Operation not permitted to 100.66.238.26:2222. The local PAPER checkout is 16 commits behind main and PAD is 7 commits behind, so I cannot safely base PR branches on current main. MCP provides read-only file access but no branch or push operation. The unsafe paths are identified in the issue body; needs a runtime with Forgejo git push access to make and verify the PR.

Confirmed the unsafe cleanup on current Forgejo main. Implementation is blocked in this runtime because outbound git SSH is denied: `GIT_SSH_COMMAND='ssh -F /dev/null -o StrictHostKeyChecking=accept-new' git -C /home/breadway/Projects/breadpaper ls-remote origin refs/heads/main` fails with `socket: Operation not permitted` to 100.66.238.26:2222. The local PAPER checkout is 16 commits behind main and PAD is 7 commits behind, so I cannot safely base PR branches on current main. MCP provides read-only file access but no branch or push operation. The unsafe paths are identified in the issue body; needs a runtime with Forgejo git push access to make and verify the PR.
Author
Owner

Implemented in PR #16. Both tag release workflows now use their own mktemp directory and clean up only that directory on exit. Verified YAML parsing, embedded shell syntax with bash -n, and git diff --check.

Implemented in [PR #16](https://git.breadway.dev/Breadway/breadpaper/pulls/16). Both tag release workflows now use their own `mktemp` directory and clean up only that directory on exit. Verified YAML parsing, embedded shell syntax with `bash -n`, and `git diff --check`.
Author
Owner

Reviewed PAPER-15 and PR #16. The change meets the requested scope.

Acceptance criteria:

  1. The RC workflow uses an isolated temporary checkout and never removes shared /tmp/bread-ecosystem-ci-* paths. Satisfied by .forgejo/workflows/rc-release.yml:55-58, with clone and index generation using that directory at lines 57-58.
  2. The stable workflow uses an isolated temporary checkout and removes the fixed shared path. Satisfied by .forgejo/workflows/release.yml:58-61; clone and index generation both use the unique directory.

The EXIT traps clean up each job's own directory even when clone or index generation fails. No automated behavior test was added; the shell/YAML validation recorded on the issue covers syntax, and the changed code paths are straightforward. Current PR head CI is green (check / check (push)), the PR is mergeable, and git diff --check passes. Looks ready to merge.

Reviewed PAPER-15 and PR #16. The change meets the requested scope. Acceptance criteria: 1. The RC workflow uses an isolated temporary checkout and never removes shared `/tmp/bread-ecosystem-ci-*` paths. Satisfied by `.forgejo/workflows/rc-release.yml:55-58`, with clone and index generation using that directory at lines 57-58. 2. The stable workflow uses an isolated temporary checkout and removes the fixed shared path. Satisfied by `.forgejo/workflows/release.yml:58-61`; clone and index generation both use the unique directory. The EXIT traps clean up each job's own directory even when clone or index generation fails. No automated behavior test was added; the shell/YAML validation recorded on the issue covers syntax, and the changed code paths are straightforward. Current PR head CI is green (`check / check (push)`), the PR is mergeable, and `git diff --check` passes. Looks ready to merge.
Sign in to join this conversation.
No labels
No milestone
No project
No assignees
1 participant
Notifications
Due date
The due date is invalid or out of range. Please use the format "yyyy-mm-dd".

No due date set.

Dependencies

No dependencies set.

Reference
Breadway/breadpaper#15
No description provided.