Native CI workflow types, KISS, one small shared workflow per platform:
android.yaml: Gradle invocations (one per line) in the pinned ci-android-runtime image on android-build (Lore builders, /dev/kvm). Optional commands + checksum-verified Node, optional emulator-tasks (boots an AVD and runs connected tests), optional publish-tasks on vX.Y.Z tags to the owner's Gitea Maven registry (gitea repository, giteaMavenUrl/giteaUsername/giteaPassword properties).
windows.yaml: host job on a Windows runner, commands as one PowerShell 7 script that stops on any error or non-zero native exit code; optional dotnet-version check; on v* tags uploads artifacts + SHA256SUMS to the tag's Gitea release.
macos.yaml: host job on grogu, commands with bash -exo pipefail; optional xcode (DEVELOPER_DIR) and lfs; same tag-release behaviour.
Proven with callers pinned to the branch:
android: QRun-IO/qqq-android run 7129 (unit tests, lint, debug+QA APKs, 48 connected tests on the emulator), 6.5 min.
windows: KofTwentyTwo/AppKit run 7142 (115 tests, 100% coverage gate, format, pack).
Native CI workflow types, KISS, one small shared workflow per platform:
- `android.yaml`: Gradle invocations (one per line) in the pinned `ci-android-runtime` image on `android-build` (Lore builders, `/dev/kvm`). Optional `commands` + checksum-verified Node, optional `emulator-tasks` (boots an AVD and runs connected tests), optional `publish-tasks` on `vX.Y.Z` tags to the owner's Gitea Maven registry (`gitea` repository, `giteaMavenUrl`/`giteaUsername`/`giteaPassword` properties).
- `windows.yaml`: host job on a Windows runner, `commands` as one PowerShell 7 script that stops on any error or non-zero native exit code; optional `dotnet-version` check; on `v*` tags uploads `artifacts` + `SHA256SUMS` to the tag's Gitea release.
- `macos.yaml`: host job on grogu, `commands` with `bash -exo pipefail`; optional `xcode` (DEVELOPER_DIR) and `lfs`; same tag-release behaviour.
Proven with callers pinned to the branch:
- android: QRun-IO/qqq-android run 7129 (unit tests, lint, debug+QA APKs, 48 connected tests on the emulator), 6.5 min.
- windows: KofTwentyTwo/AppKit run 7142 (115 tests, 100% coverage gate, format, pack).
- macos: KofTwentyTwo/MetalPOC 7135, VoicePOC 7138 (swift test, 20 tests), PerfectCup 7139.
Not exercised live: the tag release/publish steps (need a real tag; owner/release agent on the first one).
Callers reference `@v1`, so `v1` needs to move to this merge commit (owner).
🤖 Generated with [Claude Code](https://claude.com/claude-code)
android.yaml runs Gradle gates in the pinned Android image on android-build
(optional emulator tasks, optional publish to the Gitea Maven registry on
vX.Y.Z tags). windows.yaml and macos.yaml run the caller's commands directly
on the Windows / macOS host runners and attach artifacts plus SHA256SUMS to
the Gitea release on v* tags.
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Blocking a user prevents them from interacting with repositories, such as opening or commenting on pull requests or issues. Learn more about blocking a user.
Native CI workflow types, KISS, one small shared workflow per platform:
android.yaml: Gradle invocations (one per line) in the pinnedci-android-runtimeimage onandroid-build(Lore builders,/dev/kvm). Optionalcommands+ checksum-verified Node, optionalemulator-tasks(boots an AVD and runs connected tests), optionalpublish-tasksonvX.Y.Ztags to the owner's Gitea Maven registry (gitearepository,giteaMavenUrl/giteaUsername/giteaPasswordproperties).windows.yaml: host job on a Windows runner,commandsas one PowerShell 7 script that stops on any error or non-zero native exit code; optionaldotnet-versioncheck; onv*tags uploadsartifacts+SHA256SUMSto the tag's Gitea release.macos.yaml: host job on grogu,commandswithbash -exo pipefail; optionalxcode(DEVELOPER_DIR) andlfs; same tag-release behaviour.Proven with callers pinned to the branch:
Not exercised live: the tag release/publish steps (need a real tag; owner/release agent on the first one).
Callers reference
@v1, sov1needs to move to this merge commit (owner).🤖 Generated with Claude Code