
github-ci-architecture
by Otard95
ED Expedition is a tool designed to help you plan, execute, and record your journeys through the galaxy. It allows you to plot routes using several methods and join one or more routes into one expedition.
SKILL.md
name: github-ci-architecture description: Design decisions and rationale for GitHub Actions CI/CD. Use when modifying workflows, debugging release or build issues, troubleshooting Nix packaging, or understanding why CI is configured the way it is (webkit2_41 variants, PAT tokens, build triggers, release-please).
GitHub CI Architecture
PAT Token Requirement
Release-please uses RELEASE_PLEASE_TOKEN (a PAT) instead of GITHUB_TOKEN because GitHub's security model prevents GITHUB_TOKEN from triggering downstream workflows. Without the PAT, the release tag creation wouldn't trigger the release build workflow.
Required PAT permissions: repo and workflow.
Dual Linux Builds (webkit2_41)
Two Linux binaries are built due to webkit ABI incompatibility:
- Standard build: Links against
libwebkit2gtk-4.0(Ubuntu 22.04, Debian 11) - webkit2_41 build: Links against
libwebkit2gtk-4.1(Ubuntu 24.04+, NixOS)
Wails flag -tags webkit2_41 selects the 4.1 ABI. The Nix flake downloads the webkit2_41 variant because NixOS uses webkitgtk_4_1.
Nix Flake Auto-Update
The release workflow automatically updates flake.nix after publishing artifacts:
- Downloads the webkit2_41 Linux tarball
- Calculates SHA256 hash via
nix-prefetch-url - Updates version and hash in
flake.nix - Commits with
[skip ci]to avoid retriggering
No manual flake updates needed after releases.
Build Trigger Strategy
Builds run on PRs and releases only, not on push to main.
Rationale: PRs already verify code before merge, and releases build artifacts. Building on main push would duplicate the PR build (since main commits come from merged PRs).
Conventional Commits
Release-please analyzes commits to determine version bumps:
| Commit Type | Version Bump |
|---|---|
fix: | Patch (0.0.X) |
feat: | Minor (0.X.0) |
feat!: or BREAKING CHANGE: | Minor pre-1.0, Major post-1.0 |
Config: bump-minor-pre-major: true allows minor bumps for features before 1.0.0.
Score
Total Score
Based on repository quality metrics
SKILL.mdファイルが含まれている
ライセンスが設定されている
100文字以上の説明がある
GitHub Stars 100以上
3ヶ月以内に更新がある
10回以上フォークされている
オープンIssueが50未満
プログラミング言語が設定されている
1つ以上のタグが設定されている
Reviews
Reviews coming soon