Skip to content

Standardize CI on the org shape - #4

Merged
nicodes merged 1 commit into
mainfrom
chore/standardize-ci
Aug 2, 2026
Merged

Standardize CI on the org shape#4
nicodes merged 1 commit into
mainfrom
chore/standardize-ci

Conversation

@nicodes

@nicodes nicodes commented Aug 2, 2026

Copy link
Copy Markdown
Member

Part of the gd-* family standardization — fourteen repos, same change.

What changes

  • Checks move into .github/actions/test, called by CI. Nine of the fourteen carried a byte-identical ci.yml; five had drifted, almost entirely legitimately (each addon validates its own file manifest). Those manifests are preserved verbatim.
  • The if: hashFiles(...) guards are gone. A step that skips itself when its test script is absent is indistinguishable from one whose script was renamed or deleted — a skipped test is a green tick.
  • Godot from a local setup-godot composite action, copied from the one castledrop and prizm carry, rather than a download URL written into ci.yml.
  • One job named ci, timeout-minutes, third-party actions SHA-pinned.

Why removing the guards is safe right now

All fourteen repos were surveyed first: every one of them does run a suite — twelve via tests/test.sh, two via Go tests in cli/. So removing the guards changes nothing today, which is exactly why now is the cheapest moment to do it. The next time someone renames a test script, it fails instead of going green.

Phase 2 of the standardization plan (F4, F5, F6, Decisions 4–6).

Release runs Test now

It used to read the version, package the addon and publish it to the GDAM registry without running any check at all. The only thing between a broken commit and a published release was whether somebody had looked at CI first.

The checks move into .github/actions/test, called by CI. Nine of the
fourteen gd-* repos carried a byte-identical ci.yml and five had drifted;
the drift was almost entirely legitimate -- each addon validates its own
file manifest -- so those manifests are preserved verbatim.

The `if: hashFiles(...)` guards are gone. A step that skips itself when
its test script is absent is indistinguishable from one whose script was
renamed or deleted: a skipped test is a green tick. All fourteen repos
were surveyed first and every one of them does run a suite, so removing
the guards costs nothing today -- which is exactly why now is the
cheapest time to remove them.

Godot comes from a local setup-godot composite action, copied from the
one castledrop and prizm already carry, rather than a download URL
written into ci.yml. The engine version this addon is tested against was
living in workflow YAML.

One job named ci, timeout-minutes, and third-party actions pinned by SHA
with the tag in a trailing comment.

Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>

Release also runs Test now. It used to read the version, package the
addon and publish it to the GDAM registry without running any check at
all -- the only thing between a broken commit and a published release
was whether somebody had looked at CI first.
@nicodes
nicodes merged commit c004684 into main Aug 2, 2026
1 check passed
@nicodes
nicodes deleted the chore/standardize-ci branch August 2, 2026 00:48
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