ci-platforms / windows amd64 smoke (push) Skipped
github-native / gitea-pending (push) Skipped
github-native / darwin amd64 native (push) Skipped
github-native / linux amd64 native (push) Skipped
github-native / windows amd64 native (push) Skipped
github-native / darwin arm64 native (push) Skipped
github-native / gitea-result (push) Skipped
ci-platforms / darwin amd64 smoke (push) Skipped
ci-platforms / darwin arm64 smoke (push) Skipped
ci / checks (push) Successful in 6m1s
ci / build (amd64, linux, ubuntu-24.04) (push) Successful in 11m35s
ci / release (push) Skipped
GitHub / windows amd64 native GitHub-hosted native CI: failure
GitHub / darwin arm64 native GitHub-hosted native CI: success
GitHub / darwin amd64 native GitHub-hosted native CI: success
GitHub / linux amd64 native GitHub-hosted native CI: success
42 lines
2.6 KiB
Markdown
42 lines
2.6 KiB
Markdown
# CI workflows
|
|
|
|
Gitea is the source of truth. The Linux workflow runs there; optional Gitea
|
|
platform runners remain controlled by `PLATFORM_RUNNERS`.
|
|
|
|
`github-native.yml` is for the GitHub mirror. It builds and tests on native
|
|
Windows, macOS (arm64 and amd64), and Linux runners, and uploads unsigned CI
|
|
artifacts and diagnostic logs. The Windows installer smoke is restricted to an
|
|
ephemeral GitHub-hosted runner. macOS bundles are ad-hoc signed, not notarized.
|
|
These jobs are not evidence of platform support until they actually pass on
|
|
their respective runners.
|
|
|
|
On Gitea, the GitHub-only matrix routes to the Linux runner before being
|
|
skipped. This prevents Windows and macOS entries from waiting indefinitely for
|
|
runners that Gitea does not have. On GitHub, the actual native labels are used.
|
|
macOS and Windows build the pinned GLSL reference validator from verified
|
|
source, rather than depending on a changing package-manager version.
|
|
|
|
To show native GitHub results on the Gitea commit, create the GitHub Actions
|
|
secret `GITEA_STATUS_TOKEN` containing a Gitea API token with repository write
|
|
permission. Prefer a non-admin bot that has access only to `sanspie/aego`:
|
|
Gitea's repository-write token is broader than commit statuses. The reporter
|
|
publishes pending and final statuses with links to the real GitHub jobs only
|
|
for trusted `master` pushes or manual runs, never for pull requests. If the
|
|
secret is missing, CI still runs but no Gitea statuses are published.
|
|
|
|
Keep GitHub Actions disabled through the first mirror sync: historical tags
|
|
can contain older workflows. Before enabling Actions, verify mirrored refs and
|
|
restrict the allowed workflows so historical release jobs cannot run. Use a
|
|
separate repository-scoped credential for the mirror; do not put it in a URL.
|
|
Gitea's build-and-publish job remains paused. `github-release-mirror.yml`
|
|
copies already-published Gitea releases and assets to GitHub after the current
|
|
master passes Gitea Linux CI and all four real GitHub native jobs. It also
|
|
checks periodically and can be dispatched manually from master. Versioned
|
|
stable releases are published normally, with the highest stable version marked
|
|
Latest; nightly, beta versions, and the stable-channel pointer are prereleases.
|
|
The mirror verifies matching git refs and asset sizes/checksums, stages new
|
|
releases as drafts, and never moves tags or replaces existing assets. If a
|
|
mutable nightly or another mirrored snapshot changes, the mirror stops rather
|
|
than overwriting it; a separate reviewed update is needed in that case. Signed
|
|
update manifests are copied unchanged and retain their original download URLs.
|