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

Closed
opened 2026-09-30 02:08:55 +08:00 by Breadway · 6 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 breadpad'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 breadpad'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

Confirmed both unsafe release workflow patterns in the local checkout: rc-release.yml deletes /tmp/bread-ecosystem-ci-* before using a fresh mktemp clone, and release.yml deletes and reuses /tmp/bread-ecosystem-ci. This checkout is clean on main but seven commits behind current Forgejo main (local origin/main is 51aae931; Forgejo reports 08aff4a3). I cannot safely create a branch from current main because GIT_SSH_COMMAND='ssh -F /dev/null -o StrictHostKeyChecking=accept-new' git ls-remote origin refs/heads/main fails with socket: Operation not permitted to 100.66.238.26:2222. Please retry from a runtime with git SSH access; expected change is to remove the wildcard/fixed-path cleanup, clone into unique mktemp directories, and clean only each job's own directory.

Confirmed both unsafe release workflow patterns in the local checkout: `rc-release.yml` deletes `/tmp/bread-ecosystem-ci-*` before using a fresh `mktemp` clone, and `release.yml` deletes and reuses `/tmp/bread-ecosystem-ci`. This checkout is clean on `main` but seven commits behind current Forgejo main (local origin/main is `51aae931`; Forgejo reports `08aff4a3`). I cannot safely create a branch from current main because `GIT_SSH_COMMAND='ssh -F /dev/null -o StrictHostKeyChecking=accept-new' git ls-remote origin refs/heads/main` fails with `socket: Operation not permitted` to 100.66.238.26:2222. Please retry from a runtime with git SSH access; expected change is to remove the wildcard/fixed-path cleanup, clone into unique `mktemp` directories, and clean only each job's own directory.
Author
Owner

Retried current-main access using the canonical Forgejo SSH endpoint ssh://git@git.breadway.dev:2222/Breadway/breadpad.git. Fetch command: GIT_SSH_COMMAND='ssh -F /dev/null -o StrictHostKeyChecking=accept-new' git -C ~/Projects/breadpad -c remote.origin.url=ssh://git@git.breadway.dev:2222/Breadway/breadpad.git fetch origin main. It still fails before authentication with socket: Operation not permitted, ssh: connect to host 100.66.238.26 port 2222: failure, and fatal: Could not read from remote repository. The checkout remains clean on main, seven commits behind, so I did not create a branch or edit files. PAD-16 remains in TODO until a runtime with Tailscale Forgejo SSH access can fetch current main.

Retried current-main access using the canonical Forgejo SSH endpoint `ssh://git@git.breadway.dev:2222/Breadway/breadpad.git`. Fetch command: `GIT_SSH_COMMAND='ssh -F /dev/null -o StrictHostKeyChecking=accept-new' git -C ~/Projects/breadpad -c remote.origin.url=ssh://git@git.breadway.dev:2222/Breadway/breadpad.git fetch origin main`. It still fails before authentication with `socket: Operation not permitted`, `ssh: connect to host 100.66.238.26 port 2222: failure`, and `fatal: Could not read from remote repository.` The checkout remains clean on `main`, seven commits behind, so I did not create a branch or edit files. PAD-16 remains in TODO until a runtime with Tailscale Forgejo SSH access can fetch current main.
Author
Owner

This item remains blocked by the documented lack of Forgejo SSH access and a checkout that is behind current main. No branch or PR can be safely created here yet. Moving back to TODO until a current checkout and an allowed push path are available.

This item remains blocked by the documented lack of Forgejo SSH access and a checkout that is behind current main. No branch or PR can be safely created here yet. Moving back to TODO until a current checkout and an allowed push path are available.
Author
Owner

Rechecked PAD-16 against current Forgejo state. Main is 08aff4a37a9dd11a2839c9b4b00022cefab622f7; there is no PAD-16 branch or pull request. The shared Breadpad checkout remains clean on main at c671d2e, seven commits behind, and was not changed. A fresh clone in /tmp using the authorized ssh://git@git.breadway.dev:2222/Breadway/breadpad.git origin failed before authentication because SSH rejects /etc/ssh/ssh_config.d/20-systemd-ssh-proxy.conf ownership/permissions. I stopped without trying another remote or route and did not create a branch. The current Forgejo workflow copies still contain the shared-path deletion patterns. PAD-16 remains blocked in TODO until this runtime can fetch current main through the authorized origin.

Rechecked PAD-16 against current Forgejo state. Main is `08aff4a37a9dd11a2839c9b4b00022cefab622f7`; there is no PAD-16 branch or pull request. The shared Breadpad checkout remains clean on main at `c671d2e`, seven commits behind, and was not changed. A fresh clone in `/tmp` using the authorized `ssh://git@git.breadway.dev:2222/Breadway/breadpad.git` origin failed before authentication because SSH rejects `/etc/ssh/ssh_config.d/20-systemd-ssh-proxy.conf` ownership/permissions. I stopped without trying another remote or route and did not create a branch. The current Forgejo workflow copies still contain the shared-path deletion patterns. PAD-16 remains blocked in TODO until this runtime can fetch current main through the authorized origin.
Author
Owner

Implemented and pushed b4be886 on fix/pad-16-isolated-tag-index: #17

Both tag workflows now use unique mktemp clone directories with EXIT cleanup limited to their own directory. YAML parsing and shell syntax passed. Four concurrent mocked steps used distinct paths; success and failure cleanup passed, and a sibling active checkout survived. No personal config, desktop, installed binary, release tag, or deployment was touched.

Implemented and pushed b4be886 on fix/pad-16-isolated-tag-index: https://git.breadway.dev/Breadway/breadpad/pulls/17 Both tag workflows now use unique mktemp clone directories with EXIT cleanup limited to their own directory. YAML parsing and shell syntax passed. Four concurrent mocked steps used distinct paths; success and failure cleanup passed, and a sibling active checkout survived. No personal config, desktop, installed binary, release tag, or deployment was touched.
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/breadpad#16
No description provided.