Skip to content

Stop ignoring rubocop failures: remove continue-on-error from the ruby-style job (78 repos) #45

Description

@silug

Summary

The ruby-style job in the baseline .github/workflows/pr_tests.yml is declared
continue-on-error: true, so rubocop failures never fail a PR. The job runs, goes
red internally, and the check reports success. Rubocop is effectively advisory across
the whole fleet.

Surveyed 2026-07-27: 78 repos carry the unconditional form.

  ruby-style:
    name: 'Ruby Style'
    runs-on: ubuntu-latest
    continue-on-error: true        # <-- remove this

⚠️ Do not strip continue-on-error blindly

There are two distinct uses in this workflow and only one is a bug:

Occurrence Repos Action
ruby-style: job → continue-on-error: true 78 remove — this is the bug
parallel_spec step → continue-on-error: ${{matrix.puppet.experimental}} 75 keep — this gates the Ruby 4 / OpenVox 9 preview matrix entry

74 repos have both. A sweep matching on continue-on-error alone would take out the
OpenVox 9 preview along with the rubocop gate. Match on the literal job-level
continue-on-error: true only.

Why this should be one pass

No SIMP-maintained repo parks known violations: 0 of the 78 have a
.rubocop_todo.yml. (37 repos in the org do have one, but they are all vendored/forked
modules — augeasproviders_*, pupmod-voxpupuli-*, inspec_tools,
binford2k-node_encrypt — and none of them uses this pr_tests.yml baseline.)
Combined with the historical per-module "Clean up for rubocop" commits, the fleet is
plausibly already clean, so flipping the gate should stay green.

Absence of a todo file is not proof of zero offenses, though — it is only knowable by
running rubocop. Suggest landing the change on one pilot module and confirming the
Ruby Style job passes before the full sweep.

Blocked on

#42 — needs puppetsync working again before this can be rolled out.

Consolidates

Filed per-module on a sample of repos before this was understood as a baseline issue;
those are being closed in favor of this one:

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions