Skip to content

ci(release): only auto-release on schedule for upstream core bumps - #93

Merged
loss-and-quick merged 1 commit into
mainfrom
ci/release-cores-only-on-schedule
Jun 22, 2026
Merged

ci(release): only auto-release on schedule for upstream core bumps#93
loss-and-quick merged 1 commit into
mainfrom
ci/release-cores-only-on-schedule

Conversation

@loss-and-quick

Copy link
Copy Markdown
Owner

Summary

The weekly release cron (0 3 * * 1) cut a release whenever any code commit had landed in a build-affecting path since the last tag — so every week with active development shipped a patch release on autopilot, with no human in the loop.

This gates the code-commit trigger behind a non-schedule event:

  • Scheduled (Monday cron) — auto-releases only when an upstream core bumped (Xray / tun2socks / sing-box). Code-only changes no longer trigger a scheduled release.
  • Manual (workflow_dispatch) — unchanged: still releases on code commits, with the bump / skip_bump / force inputs.
  • force=true — unchanged.

The change is a single conditional: has_code_commits now only flips skip=false when github.event_name != 'schedule'. Core-bump detection (which sets bump=minor) is untouched, so kernel updates still ship automatically every Monday.

Affected layer

  • frontend/ — React Web UI
  • crates/ · src-tauri/ — Rust core / backend / Tauri desktop
  • module/ — Android installable zip (thin launcher over the Rust daemon)
  • scripts/ — build / release helpers
  • CI / .github/
  • Docs only

Verification

  • actionlint (v1.7.12, the version pinned in lint-workflows.yml) clean on release.yml — includes the shellcheck pass over the edited run: block.

Checklist

  • Title is a scoped Conventional Commit; commits are logically split
  • No build artifacts committed
  • Generated frontend/src/generated/ not touched
  • No user-visible strings changed
  • No project-id renames

Notes for reviewers

Behaviour matrix after this change:

Trigger Code commits only Upstream core bump
Monday cron no release (was: patch) minor release
workflow_dispatch patch release minor release
workflow_dispatch + force release regardless release regardless

To cut a code-only release on demand, run the workflow manually from the Actions tab.

The weekly cron previously cut a release whenever any code commit had
landed in a build-affecting path, so every active week shipped a patch
release on autopilot. Gate the code-commit trigger behind a non-schedule
event: on the Monday cron only an upstream core bump (xray / tun2socks /
sing-box) auto-releases, while a manual workflow_dispatch still releases
on code commits as before. force=true is unchanged.
@github-actions github-actions Bot added the ci CI / workflows (.github/) label Jun 22, 2026
@loss-and-quick
loss-and-quick merged commit 916c8f6 into main Jun 22, 2026
8 checks passed
@loss-and-quick
loss-and-quick deleted the ci/release-cores-only-on-schedule branch June 22, 2026 11:27
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

ci CI / workflows (.github/)

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant