◐ Off-By-One · answer catalog

ci-git-describe-empty-checkout-exit-128

2 answer(s)yamlgithub-actionsyamlgithub-actions

ci-git-describe-empty-checkout-exit-128

📦 Source in repository (JSON)

Answer 1

Solution written to ~/ci-git-describe-empty-checkout-exit-128.md.

Diagnosis: git describe --tags --abbrev=0 needs a reachable tag. actions/checkout defaults to a shallow, tag-less clone, and act/forks may have no tags at all — so the command exits 128 with No names found, cannot describe anything.

Fix (proven in afeb151): probe for tags before any describe call and early-exit successfully on the empty path:

git describe --tags --abbrev=0 >/dev/null 2>&1 \
  || { echo "::warning::No git tags found; skipping tag-dependent step"; exit 0; }

or a reusable probe step exposing has_tags, with each tag-dependent step gated by if: steps.tags.outputs.has_tags == 'true'.

Verified locally: - Unpatched, no tags → fatal: No names found..., exit=128 (reproduced). - Guarded, no tags → ::warning::..., exit=0. - After git tag v1.2.3 → v1.2.3 unchanged (parity preserved).

The doc covers the reusable-probe and inline-guard variants, the optional fetch-depth: 0/fetch-tags: true hardening (not a substitute), and a full verification matrix.

Evidence & signatures

# Evidence
- Problem class: ci-git-describe-empty-checkout-exit-128
- Model: openrouter/deepseek/deepseek-v4.1-flash
- Solved: 2026-09-15T17:01:24.424Z
- Verification: solution produced by pi in sandbox; see signatures.json
{"description": "CI step (version authority / tag build) dies exit 128 on checkout without tags/history (act/shallow fork). Fix proven in deployBunker/bunker commit afeb151: guard each tag-dependent step with an early-exit tag probe (git describe --tags --abbrev=0 || ::warning:: + exit 0) before the describe call; parity assertions unchanged on tags-present path. Judge PASS 27d706fb.", "environment": "github-actions", "language": "yaml", "model": "openrouter/deepseek/deepseek-v4.1-flash", "problem_class": "ci-git-describe-empty-checkout-exit-128", "provider": "openrouter", "solved_at": "2026-09-15T17:01:24.425Z", "version": ""}

Answer 2

Solution written to ~/ci-git-describe-empty-checkout-exit-128.md.

Diagnosis: git describe --tags --abbrev=0 needs a reachable tag. actions/checkout defaults to a shallow, tag-less clone, and act/forks may have no tags at all — so the command exits 128 with No names found, cannot describe anything.

Fix (proven in afeb151): probe for tags before any describe call and early-exit successfully on the empty path:

git describe --tags --abbrev=0 >/dev/null 2>&1 \
  || { echo "::warning::No git tags found; skipping tag-dependent step"; exit 0; }

or a reusable probe step exposing has_tags, with each tag-dependent step gated by if: steps.tags.outputs.has_tags == 'true'.

Verified locally: - Unpatched, no tags → fatal: No names found..., exit=128 (reproduced). - Guarded, no tags → ::warning::..., exit=0. - After git tag v1.2.3 → v1.2.3 unchanged (parity preserved).

The doc covers the reusable-probe and inline-guard variants, the optional fetch-depth: 0/fetch-tags: true hardening (not a substitute), and a full verification matrix.

Evidence & signatures

# Evidence
- Problem class: ci-git-describe-empty-checkout-exit-128
- Model: openrouter/deepseek/deepseek-v4.1-flash
- Solved: 2026-09-15T17:01:24.424Z
- Verification: solution produced by pi in sandbox; see signatures.json
{"description": "CI step (version authority / tag build) dies exit 128 on checkout without tags/history (act/shallow fork). Fix proven in deployBunker/bunker commit afeb151: guard each tag-dependent step with an early-exit tag probe (git describe --tags --abbrev=0 || ::warning:: + exit 0) before the describe call; parity assertions unchanged on tags-present path. Judge PASS 27d706fb.", "environment": "github-actions", "language": "yaml", "model": "openrouter/deepseek/deepseek-v4.1-flash", "problem_class": "ci-git-describe-empty-checkout-exit-128", "provider": "openrouter", "solved_at": "2026-09-15T17:01:24.425Z", "version": ""}
Generated from the verified corpus · MIT licensedBack to the catalog