Skip to content

feat: add CI build check and publish release workflows#2

Open
andrescera wants to merge 6 commits intomasterfrom
feat/ci-workflows
Open

feat: add CI build check and publish release workflows#2
andrescera wants to merge 6 commits intomasterfrom
feat/ci-workflows

Conversation

@andrescera
Copy link
Member

Summary

  • Add build-check.yml: CI workflow that runs on PR/push to main, builds for arm64/amd64
  • Add publish-release.yml: Manual workflow for creating releases

Features

  • CalVer versioning with stable/beta channels
  • Builds both .deb packages and .tar.gz archives
  • GPG signs APT repository metadata
  • Uploads to Cloudflare R2
  • Creates GitHub release with all artifacts and SHA256 checksums

Test plan

  • Verify build-check runs on PR
  • Test publish-release workflow manually

- Add build-check.yml: runs on PR/push to main, builds for arm64/amd64
- Add publish-release.yml: manual workflow for releases
  - CalVer versioning with stable/beta channels
  - Builds .deb packages and .tar.gz archives
  - GPG signs APT repository metadata
  - Uploads to Cloudflare R2
  - Creates GitHub release with all artifacts and checksums
The previous workflow failed because --load cannot load cross-platform images.
Simplified to use native runners:
- ubuntu-latest for AMD64
- ubuntu-24.04-arm for ARM64

This eliminates Docker, QEMU, and buildx complexity.
- Fix macOS workflow: use 'brew install googletest' instead of deprecated formula
- Fix iOS workflow: correct toolchain path (../scripts/iOS.cmake)
- Update actions/checkout to v4 for both workflows
Skip resource-intensive optional workflows on PRs:
- Android builds (Docker)
- iOS builds (requires macOS runner)
- Windows builds
- s390x QEMU builds (very slow)
- ABI checks (not critical for CI workflow PRs)

These will still run on direct pushes to master.
Keep only critical workflows for PRs:
- Build Check (amd64/arm64)
- CodeQL security analysis
- macOS and Ubuntu cxx11 builds
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