Instruction file imported from joesturge/godot-secure-templater (
.github/instructions/ci.instructions.md). Copyright stays with the author.
CI / Workflows — Compact Rules
- Trigger releases only on annotated tag pushes that match
v*. - Artifact naming:
gst-<os>-<arch>[-debug].zipor.exeinside the archive. Do not publish GOARCH=386 artifacts. - Build matrix: parallelize
target=releaseandtarget=debug, collect per-target logs, fail if either fails. - Cache key: use
manifest.json+ platform + toolchain identity (MinGW/Python/SCons versions) asactions/cachekey. - CI must run
gst create --non-interactive --godot-version <x.y.z>(prefer explicit version). Avoid relying onlatestin non-interactive runs. - Secrets: avoid printing raw keys; prefer file/stdin handoff for
SCRIPT_AES256_ENCRYPTION_KEYwhere possible; mask secrets in logs. - Exit codes: rely on
internal/errors.gocontract; workflows should branch on codes (0 success, 4 version-resolution, 5 integrity/checksum, 6 disk, 7 build failed, 8 config injection, 9 unsupported, 10 lock held). - Lint & tests: workflows must run
go test ./...andgolangci-lint run ./...before producing artifacts.
Keep this file minimal — add detailed CI examples to docs/ when more than one concrete example is needed.