Skip to content

fix(ci): auto-refactor should run even when quality gates fail#930

Merged
chubes4 merged 1 commit intomainfrom
fix/autorefactor-gate
Mar 22, 2026
Merged

fix(ci): auto-refactor should run even when quality gates fail#930
chubes4 merged 1 commit intomainfrom
fix/autorefactor-gate

Conversation

@chubes4
Copy link
Member

@chubes4 chubes4 commented Mar 22, 2026

Problem

Auto-refactor has never run in the release pipeline because it was gated on gate-test.result == 'success':

audit fails (868 findings, always exit 1)
  → lint skipped (depends on audit)
    → test skipped (depends on lint)
      → auto-refactor skipped (requires test success)

The whole point of auto-refactor is to fix what the quality gates found. Gating it on their success means it can never run when there's work to do.

Fix

# Before
needs: [check, gate-build, gate-test, prepare]
if: always() && needs.gate-test.result == 'success'

# After
needs: [check, gate-build, gate-audit, gate-lint, gate-test]
if: always() && needs.check.outputs.should-release == 'true' && needs.gate-build.result == 'success'
  • Only requires build success (needs the homeboy binary)
  • Waits for all quality gates to finish (via needs) but doesn't require they pass
  • Removes prepare dependency — auto-refactor shouldn't wait for the release step
  • Uses always() so skipped/failed upstream jobs don't block it

Impact

After this merge, the next scheduled release run will actually run auto-refactor for the first time, attempting to fix audit findings automatically.

Auto-refactor was gated on gate-test succeeding, but tests depend on
lint which depends on audit. Since audit always fails (868 findings),
the entire chain was skipped — auto-refactor never ran.

Fix: gate auto-refactor only on the build succeeding (needs the binary)
and check saying there's something to release. List all quality gate
jobs in needs so it waits for them to complete, but use always() so it
runs regardless of their results.

The whole point of auto-refactor is to fix what the quality gates found.
@chubes4 chubes4 merged commit 65fb900 into main Mar 22, 2026
1 check passed
@homeboy-ci
Copy link
Contributor

homeboy-ci bot commented Mar 22, 2026

Homeboy Results — homeboy

Lint

Failure Digest

Lint Failure Digest

Autofixability classification

  • Overall: human_needed
  • Autofix enabled: yes
  • Autofix attempted this run: yes
  • Human-needed failed commands:
    • lint
  • Failed commands with available automated fixes:
    • lint

Machine-readable artifacts

  • homeboy-lint-summary.json
  • homeboy-test-failures.json
  • homeboy-audit-summary.json
  • homeboy-autofixability.json

⚡ Scope: changed files only

lint (changed files only)

Audit

⚡ Scope: changed files only

audit (changed files only)

Auto-refactor

🔧 Autofix applied — 1 file(s) fixed via refactor

⚡ Scope: changed files only

refactor --from all

Tooling versions
  • Homeboy CLI: homeboy 0.85.3+02b4031
  • Extension: rust from https://github.com/Extra-Chill/homeboy-extensions
  • Extension revision: unknown
  • Action: Extra-Chill/homeboy-action@v2

Homeboy Action v1

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant