Skip to content

Standardize CI on the org shape - #5

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

Standardize CI on the org shape#5
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.yml deliberately untouched

This repo releases two artifacts behind a target input — the addon or the Go CLI — and already tests each on its own path. The generic "add Test before packaging" change the other twelve took does not fit: it would run the addon manifest check on a CLI release. Worth a look of its own.

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.

This repo's addon lives under gd/addon/ and its tests are Go, in cli/,
so its test action differs from the twelve GDScript ones accordingly.

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

release.yml is deliberately untouched. This repo releases two artifacts
behind a `target` input -- the addon or the Go CLI -- and already tests
each on its own path. The generic "add Test before packaging" change the
other twelve took does not fit that shape: it would have run the addon
manifest check on a CLI release. Worth a look of its own.

Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
@nicodes
nicodes merged commit bf3e1b3 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