Skip to content

ci: cut duplicate builds, fix release tag naming - #7

Merged
mogurt merged 1 commit into
mainfrom
fix/release-tag-naming
Sep 28, 2026
Merged

mogurt merged 1 commit into
mainfrom
fix/release-tag-naming

Conversation

@mogurt

@mogurt mogurt commented Sep 28, 2026

Copy link
Copy Markdown
Owner

Summary

Release naming

  • include-component-in-tag: false, so future tags are vX.Y.Z (matching v0.1.0) instead of comfy-downloader-vX.Y.Z.
  • Fixed the 0.1.1 CHANGELOG compare link. It pointed at a comfy-downloader-v0.1.0 tag that never existed.

CI waste

Before After
Every merge re-ran the full CI on main (Quality + 3 native builds). That is identical to the PR run, because main requires up-to-date checks. No CI on push. PRs are the gate.
Every PR ran 3 native builds (~16 min wall clock), even for docs or frontend-only changes. Docs-only PRs skip everything. Frontend-only PRs run only Quality, which now includes vite build. Native builds run when src-tauri/, scripts/, package*.json or workflows change.
The release-please version-bump PR ran all 3 native builds, then the release built them again. Release PRs skip native builds; the release build still runs after merge.
macos-x64 built on the Intel runner (16.5 min, the long pole). Cross-compiled on the Apple Silicon runner. prepare-aria2 builds aria2 for the target arch and verifies it with lipo.
CI and release used separate Cargo caches, and every PR saved its own ~GBs of caches, which can evict main's from the 10 GB quota. Shared cache keys. Build caches are saved only from main (release runs), and PR builds restore them. The aria2 cache is keyed by target triple and used by releases too.
Stale dev triggers. Removed.

Skipped native builds still run as a single echo step on ubuntu-latest. That's because the ruleset requires Build (macos-arm64|macos-x64|windows-x64), and a skipped matrix job would report an unexpanded name that never satisfies it.

Testing

  • Workflow YAML and release-please-config.json parse.
  • node --check and eslint on scripts/prepare-aria2.mjs; the Windows path still resolves correctly.
  • This PR's own CI. It touches scripts/ and workflows, so all 3 native builds run. The script hash changed, so aria2 is rebuilt from source for both macOS arches. That validates the x86_64 cross-compile (built under Rosetta) and the lipo check.

Notes

  • release.yml / release-please.yml changes only take effect on the next release.
  • The existing comfy-downloader-v0.1.1 tag and release are left as they are.

Release naming:
- Set include-component-in-tag: false so tags are `vX.Y.Z` like v0.1.0
  instead of `comfy-downloader-vX.Y.Z`.
- Fix the 0.1.1 CHANGELOG compare link, which pointed at a
  `comfy-downloader-v0.1.0` tag that never existed.

CI waste:
- Stop running CI on push to main (and the stale dev branch): main
  requires these checks with "branch must be up to date", so the push run
  only repeated the PR run on the identical tree.
- Classify PR changes: docs-only PRs skip everything; PRs that don't touch
  src-tauri/, scripts/, package*.json or workflows (and release-please's
  version-bump PRs) skip the three native builds. The build steps are
  skipped rather than the job, on an ubuntu runner, so the required
  "Build (...)" checks still report.
- Quality now runs `npm run build` (typecheck + vite build) so skipped
  native builds don't hide frontend build breakage.
- Share Cargo caches between CI and release builds, saving them only from
  main so PR caches don't evict main's from the 10 GB quota; key the aria2
  cache by target triple and use it in release builds too.
- Build macos-x64 on the Apple Silicon runner via cross-compilation
  instead of the much slower Intel runner (16.5 min in the last run).
  prepare-aria2 takes ARIA2_TARGET_TRIPLE, builds aria2 for that arch and
  verifies it with lipo.
@mogurt
mogurt merged commit 3ee777e into main Sep 28, 2026
5 checks passed
mogurt added a commit that referenced this pull request Sep 28, 2026
The 0.1.1 release has been retagged from `comfy-downloader-v0.1.1` to
`v0.1.1`, to match `include-component-in-tag: false` from #7. The old
tag was deleted, so the CHANGELOG compare link needs to follow.

Docs-only change, so CI skips Quality and the native builds.
@mogurt
mogurt deleted the fix/release-tag-naming branch September 28, 2026 09:15
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