ci: fix dev-release version-tag filter and temp-dir race #8

Merged
Breadway merged 1 commit from fix/eco38-tmp-race-glob into main 2026-09-29 07:54:06 +08:00
Owner

Two separate bugs, confirmed from the forgejo-runner journal on Hestia:

  1. compute dev version was missing the "(grep -v -- '-' || true)" pre-release filter present in every other repo's copy of this step. breadcast has a v0.1.1-rc.1 tag that sorts above v0.1.0 via sort -V, so LATEST_TAG resolved to "0.1.1-rc.1" and IFS='.' read put "1-rc.1" into PA, and $((PA + 1)) failed with "invalid arithmetic operator (error token is ".1")". Added the missing filter.

  2. Same rm -rf /tmp/bread-ecosystem-ci-* race as breadbar and friends in the clone bread-ecosystem (main) step. Dropped the glob, gave each workflow kind its own mktemp prefix.

Part of ECO-38.

Two separate bugs, confirmed from the forgejo-runner journal on Hestia: 1. compute dev version was missing the "(grep -v -- '-' || true)" pre-release filter present in every other repo's copy of this step. breadcast has a v0.1.1-rc.1 tag that sorts above v0.1.0 via sort -V, so LATEST_TAG resolved to "0.1.1-rc.1" and IFS='.' read put "1-rc.1" into PA, and $((PA + 1)) failed with "invalid arithmetic operator (error token is \".1\")". Added the missing filter. 2. Same rm -rf /tmp/bread-ecosystem-ci-* race as breadbar and friends in the clone bread-ecosystem (main) step. Dropped the glob, gave each workflow kind its own mktemp prefix. Part of ECO-38.
ci: stop dev-release/check temp-dir cleanup from racing concurrent jobs
All checks were successful
check / check (push) Successful in 4m35s
8dda4d61e3
The clone bread-ecosystem (main) step used a preemptive
rm -rf /tmp/bread-ecosystem-ci-* before mktemp. /tmp is a single shared
namespace on the self-hosted host executor, and with runner capacity 2
plus several repos dev-release/check builds firing close together, one
job's rm -rf glob would delete another concurrently running job's
bread-ecosystem clone mid-use. That surfaced as "No such file or
directory" at regenerate dev index.json, or a git error partway through
clone bread-ecosystem itself, depending on timing. Root cause confirmed
from the forgejo-runner journal on Hestia.

Drop the preemptive rm -rf glob and give each workflow kind its own
mktemp prefix (bread-ecosystem-dev-release-, bread-ecosystem-check-),
matching the pattern already in use in breadhelp/breadarr check.yml,
which never hit this race. mktemp's own uniqueness is enough; a
crashed job leaves at most one small leftover directory instead of
nuking a sibling job's live one.

Part of ECO-38.
Breadway deleted branch fix/eco38-tmp-race-glob 2026-09-29 07:54:06 +08:00
Sign in to join this conversation.
No reviewers
No labels
bug
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/breadcast!8
No description provided.