ci: remove push branches to save GHA minutes, update script to beta

This commit is contained in:
ospab 2026-07-09 02:43:07 +03:00
parent 3d531ee0d9
commit 3df5d5fccf
2 changed files with 8 additions and 11 deletions

View File

@ -20,9 +20,6 @@ on:
push: push:
tags: tags:
- "v*" - "v*"
branches:
- nightly
- pre-release
workflow_dispatch: workflow_dispatch:
inputs: inputs:
channel: channel:

View File

@ -6,12 +6,12 @@
.DESCRIPTION .DESCRIPTION
Three release channels, in increasing order of stability: Three release channels, in increasing order of stability:
nightly -> pushes the `nightly` branch -> tag "{version}-nightly" nightly -> pushes the `nightly` branch -> tag "{version}-nightly"
pre-release -> pushes the `pre-release` branch -> tag "{version}-beta" beta -> pushes the `beta` branch -> tag "{version}-beta"
master -> pushes an actual "v{version}" tag -> real stable release master -> pushes an actual "v{version}" tag -> real stable release
Promoting to pre-release/master first fast-forwards that branch to Promoting to beta/master first fast-forwards that branch to
`nightly` (--ff-only this always succeeds cleanly as long as nobody ever `nightly` (--ff-only this always succeeds cleanly as long as nobody ever
commits directly to pre-release/master, per CONTRIBUTING.md's branch commits directly to beta/master, per CONTRIBUTING.md's branch
strategy), so a release always ships nightly's latest, not a stale branch. strategy), so a release always ships nightly's latest, not a stale branch.
Remembers the last {version, branch, prefix} it used in .release-state.json Remembers the last {version, branch, prefix} it used in .release-state.json
@ -25,7 +25,7 @@
of the last released version. Becomes the new baseline for future bare runs. of the last released version. Becomes the new baseline for future bare runs.
.PARAMETER Branch .PARAMETER Branch
Which branch to release from: master, pre-release, or nightly. Which branch to release from: master, beta, or nightly.
Defaults to whatever was used last time (see .release-state.json). Defaults to whatever was used last time (see .release-state.json).
.PARAMETER Prefix .PARAMETER Prefix
@ -42,13 +42,13 @@
Starts releasing the 0.4.x line from now on; this run ships exactly 0.4.0. Starts releasing the 0.4.x line from now on; this run ships exactly 0.4.0.
.EXAMPLE .EXAMPLE
.\scripts\gha.ps1 -Branch pre-release -Prefix beta .\scripts\gha.ps1 -Branch beta -Prefix beta
Promotes nightly -> pre-release and ships "{version}-beta". Promotes nightly -> beta and ships "{version}-beta".
#> #>
[CmdletBinding()] [CmdletBinding()]
param( param(
[string]$Switch, [string]$Switch,
[ValidateSet('master', 'pre-release', 'nightly')] [ValidateSet('master', 'beta', 'nightly')]
[string]$Branch, [string]$Branch,
[ValidateSet('beta', 'nightly')] [ValidateSet('beta', 'nightly')]
[string]$Prefix [string]$Prefix
@ -183,7 +183,7 @@ git add Cargo.toml Cargo.lock ostp-gui/src-tauri/Cargo.toml ostp-gui/src-tauri/C
.release-state.json .release-state.json
git commit -m $commitMsg | Out-Null git commit -m $commitMsg | Out-Null
# ── Push: branch push for nightly/pre-release (CI computes the tag itself), ─ # ── Push: branch push for nightly/beta (CI computes the tag itself), ─
# ── a real "vX.Y.Z" tag for master (the only path that yields a stable ─ # ── a real "vX.Y.Z" tag for master (the only path that yields a stable ─
# ── release per release.yml's resolve-channel job). ─ # ── release per release.yml's resolve-channel job). ─
if ($ResolvedBranch -eq "master") { if ($ResolvedBranch -eq "master") {