Remove molecule_ci_guard invocation from CI — the guard was killing healthy molecule slots when unhealthy slots failed, defeating fail-fast: false
Replace guard with direct inline molecule test execution (sequential loop over test pairs)
Add shell: bash to molecule test step — the inline runner uses bashisms (<<< here-strings, ${var//pattern/replacement}) that dash/sh doesn't support. Without this, Gitea Actions defaults to sh and fails with "Syntax error: redirection unexpected"
Remove guard-only env vars (GITEA_URL, JOB_NAME, MATRIX_INDEX, GITEA_REPOSITORY)
Update documentation references
Test Results
243 passed, 100% coverage. All pre-commit hooks passed.
Depends on devx PR #258 (DEVX-153) for the guard module removal.
## Summary
- Remove `molecule_ci_guard` invocation from CI — the guard was killing healthy molecule slots when unhealthy slots failed, defeating `fail-fast: false`
- Replace guard with direct inline molecule test execution (sequential loop over test pairs)
- Add `shell: bash` to molecule test step — the inline runner uses bashisms (`<<<` here-strings, `${var//pattern/replacement}`) that dash/sh doesn't support. Without this, Gitea Actions defaults to sh and fails with "Syntax error: redirection unexpected"
- Remove guard-only env vars (`GITEA_URL`, `JOB_NAME`, `MATRIX_INDEX`, `GITEA_REPOSITORY`)
- Update documentation references
## Test Results
243 passed, 100% coverage. All pre-commit hooks passed.
Depends on devx PR #258 (DEVX-153) for the guard module removal.
Generated with [Devin](https://devin.ai)
The cross-runner cancellation guard was killing healthy molecule slots
when unhealthy slots failed, defeating fail-fast: false. Replace with
direct molecule test execution.
Generated with [Devin](https://devin.ai)
Co-Authored-By: Devin <158243242+devin-ai-integration[bot]@users.noreply.github.com>
Molecule doesn't support --cwd flag. Use pushd/popd to change
directory before running molecule test/destroy.
Generated with [Devin](https://devin.ai)
Co-Authored-By: Devin <158243242+devin-ai-integration[bot]@users.noreply.github.com>
Auto-merge: If all CI checks pass, this PR will be merged automatically.
## Automated PR Review
- Architecture compliance: OK
- Best practices: OK
- Security: OK
- i18n: OK
- Resource management: OK
- Documentation: OK
- Tests: OK
- Commit conventions: OK
No issues found by automated checks.
---
**Auto-merge:** If all CI checks pass, this PR will be merged automatically.
Auto-merge: If all CI checks pass, this PR will be merged automatically.
## Automated PR Review
- Architecture compliance: OK
- Best practices: OK
- Security: OK
- i18n: OK
- Resource management: OK
- Documentation: OK
- Tests: OK
- Commit conventions: OK
No issues found by automated checks.
---
**Auto-merge:** If all CI checks pass, this PR will be merged automatically.
The healthcheck previously used a single 75% threshold with an
until=1h filter. On busy runners with constant CI jobs, nothing
is older than 1h, so the prune barely frees anything — disk stays
at ~76% and the CI disk gate (80%) skips all molecule tests.
Two-tier approach:
- 75-79%: gentle prune (until=1h) — same as before
- 80%+: full prune (no until filter) — removes ALL stopped
containers and unused images regardless of age, plus
builder cache and networks
This ensures that when disk pressure is critical, the healthcheck
actually reclaims space instead of skipping everything that's
recently created.
Generated with [Devin](https://devin.ai)
Co-Authored-By: Devin <158243242+devin-ai-integration[bot]@users.noreply.github.com>
Auto-merge: If all CI checks pass, this PR will be merged automatically.
## Automated PR Review
- Architecture compliance: OK
- Best practices: OK
- Security: OK
- i18n: OK
- Resource management: OK
- Documentation: OK
- Tests: OK
- Commit conventions: OK
No issues found by automated checks.
---
**Auto-merge:** If all CI checks pass, this PR will be merged automatically.
At 76%, molecule containers fail with "container is not running" because
overlay2 runs out of space under parallel DinD load. The gentle prune
(until=1h) at 75% was insufficient — runners stayed at 76% because
nothing was older than 1h on busy runners.
Lower the critical threshold to 75% so the full prune (no until filter)
triggers immediately when disk reaches the level where tests fail. Also
lower the gentle prune threshold to 70% to start cleanup earlier.
This matches the infra CI disk gate which skips tests at 75%+.
Generated with [Devin](https://devin.ai)
Co-Authored-By: Devin <158243242+devin-ai-integration[bot]@users.noreply.github.com>
Auto-merge: If all CI checks pass, this PR will be merged automatically.
## Automated PR Review
- Architecture compliance: OK
- Best practices: OK
- Security: OK
- i18n: OK
- Resource management: OK
- Documentation: OK
- Tests: OK
- Commit conventions: OK
No issues found by automated checks.
---
**Auto-merge:** If all CI checks pass, this PR will be merged automatically.
Docker's "until" filter is not supported with "--volumes", causing the
gentle prune to fail silently every 2 minutes:
ERROR: The "until" filter is not supported with "--volumes"
This left disk at 74% indefinitely — the gentle prune was a no-op.
Now prune images and containers with the until filter separately,
then prune volumes without a filter.
Generated with [Devin](https://devin.ai)
Co-Authored-By: Devin <158243242+devin-ai-integration[bot]@users.noreply.github.com>
Auto-merge: If all CI checks pass, this PR will be merged automatically.
## Automated PR Review
- Architecture compliance: OK
- Best practices: OK
- Security: OK
- i18n: OK
- Resource management: OK
- Documentation: OK
- Tests: OK
- Commit conventions: OK
No issues found by automated checks.
---
**Auto-merge:** If all CI checks pass, this PR will be merged automatically.
emo
approved these changes 2026-08-09 11:12:35 +00:00
Blocking a user prevents them from interacting with repositories, such as opening or commenting on pull requests or issues. Learn more about blocking a user.
Summary
molecule_ci_guardinvocation from CI — the guard was killing healthy molecule slots when unhealthy slots failed, defeatingfail-fast: falseshell: bashto molecule test step — the inline runner uses bashisms (<<<here-strings,${var//pattern/replacement}) that dash/sh doesn't support. Without this, Gitea Actions defaults to sh and fails with "Syntax error: redirection unexpected"GITEA_URL,JOB_NAME,MATRIX_INDEX,GITEA_REPOSITORY)Test Results
243 passed, 100% coverage. All pre-commit hooks passed.
Depends on devx PR #258 (DEVX-153) for the guard module removal.
Generated with Devin
Automated PR Review
No issues found by automated checks.
Auto-merge: If all CI checks pass, this PR will be merged automatically.
Automated PR Review
No issues found by automated checks.
Auto-merge: If all CI checks pass, this PR will be merged automatically.
The healthcheck previously used a single 75% threshold with an until=1h filter. On busy runners with constant CI jobs, nothing is older than 1h, so the prune barely frees anything — disk stays at ~76% and the CI disk gate (80%) skips all molecule tests. Two-tier approach: - 75-79%: gentle prune (until=1h) — same as before - 80%+: full prune (no until filter) — removes ALL stopped containers and unused images regardless of age, plus builder cache and networks This ensures that when disk pressure is critical, the healthcheck actually reclaims space instead of skipping everything that's recently created. Generated with [Devin](https://devin.ai) Co-Authored-By: Devin <158243242+devin-ai-integration[bot]@users.noreply.github.com>Automated PR Review
No issues found by automated checks.
Auto-merge: If all CI checks pass, this PR will be merged automatically.
Automated PR Review
No issues found by automated checks.
Auto-merge: If all CI checks pass, this PR will be merged automatically.
Automated PR Review
No issues found by automated checks.
Auto-merge: If all CI checks pass, this PR will be merged automatically.
Auto-approved: all CI checks passed (validate, molecule-tests).