Keep Windows releases on their existing beta channel
Build / macos (push) Successful in 10s
Build / windows (push) Successful in 30s

This commit is contained in:
2026-09-10 09:06:39 +02:00
parent b53bead1d7
commit dd0bf1f634
3 changed files with 9 additions and 13 deletions
+2 -8
View File
@@ -1,4 +1,4 @@
name: Release Windows name: Release Windows Beta
on: on:
workflow_dispatch: workflow_dispatch:
inputs: inputs:
@@ -6,12 +6,6 @@ on:
description: 'Version, e.g. 0.0.1-beta.64' description: 'Version, e.g. 0.0.1-beta.64'
required: true required: true
type: string type: string
channel:
description: Release channel
required: true
default: windows-beta
type: choice
options: [windows-beta, windows-stable]
jobs: jobs:
release: release:
if: github.ref == 'refs/heads/main' if: github.ref == 'refs/heads/main'
@@ -21,7 +15,7 @@ jobs:
shell: powershell shell: powershell
env: env:
VERSION: ${{ inputs.version }} VERSION: ${{ inputs.version }}
CHANNEL: ${{ inputs.channel }} CHANNEL: windows-beta
steps: steps:
- uses: actions/checkout@v4 - uses: actions/checkout@v4
- name: Build Windows installer - name: Build Windows installer
+5 -3
View File
@@ -192,8 +192,8 @@ Gitea **Build** validates every push to `main` on two shared account-scoped host
`mac-mini` (label `claudechecker-macos-arm64`, Xcode) and `jamespc` (label `claudechecker-windows-x64`) `mac-mini` (label `claudechecker-macos-arm64`, Xcode) and `jamespc` (label `claudechecker-windows-x64`)
(Windows host, .NET 8, Inno Setup). Each run uploads its app/installer artifact. (Windows host, .NET 8, Inno Setup). Each run uploads its app/installer artifact.
Use **Release macOS** or **Release Windows**, select `main`, and supply a version Use **Release macOS** or **Release Windows Beta**, select `main`, and supply a version
and channel. Stable versions use `X.Y.Z`; beta versions use `X.Y.Z-beta.N`. (and macOS channel). Stable versions use `X.Y.Z`; beta versions use `X.Y.Z-beta.N`.
The workflow builds that main revision, creates the release and uploads the asset The workflow builds that main revision, creates the release and uploads the asset
before advancing the corresponding `version*.json` feed on main. Releases are before advancing the corresponding `version*.json` feed on main. Releases are
never overwritten. macOS builds retain the existing ad-hoc signing model; this never overwritten. macOS builds retain the existing ad-hoc signing model; this
@@ -202,7 +202,9 @@ project does not currently perform Developer ID signing or notarization.
Existing installs still check the old GitHub `version*.json` URLs. Those files Existing installs still check the old GitHub `version*.json` URLs. Those files
are kept as a migration bridge advertising the first Gitea-hosted update. Keep are kept as a migration bridge advertising the first Gitea-hosted update. Keep
the GitHub repository accessible for those clients; subsequent updates use Gitea. the GitHub repository accessible for those clients; subsequent updates use Gitea.
GitHub workflows are disabled after the Gitea builds are verified. GitHub workflows are disabled after the Gitea builds are verified. The Homebrew
cask downloads the latest stable macOS release from Gitea and enables app-managed
updates. Windows releases remain prereleases and do not replace that stable URL.
Local build commands are `bash scripts/build-macos.sh` and, on Windows, Local build commands are `bash scripts/build-macos.sh` and, on Windows,
`./scripts/build-windows.ps1` with `INNO_SETUP_COMPILER` pointing to `ISCC.exe`. `./scripts/build-windows.ps1` with `INNO_SETUP_COMPILER` pointing to `ISCC.exe`.
+2 -2
View File
@@ -19,7 +19,7 @@ class NoRedirect(urllib.request.HTTPRedirectHandler):
def main(): def main():
version = os.environ['VERSION'] version = os.environ['VERSION']
channel = os.environ['CHANNEL'] channel = os.environ['CHANNEL']
if channel not in ('stable', 'beta', 'windows-beta', 'windows-stable'): if channel not in ('stable', 'beta', 'windows-beta'):
raise ValueError('Unknown release channel') raise ValueError('Unknown release channel')
if not re.fullmatch(r'\d+\.\d+\.\d+(-beta\.\d+)?', version): if not re.fullmatch(r'\d+\.\d+\.\d+(-beta\.\d+)?', version):
raise ValueError('Invalid release version') raise ValueError('Invalid release version')
@@ -33,7 +33,7 @@ def main():
artifact = Path('ClaudeChecker-Installer.exe' if windows else 'ClaudeChecker.zip') artifact = Path('ClaudeChecker-Installer.exe' if windows else 'ClaudeChecker.zip')
notes = Path('windows/RELEASE_NOTES.md' if windows else 'RELEASE_NOTES.md').read_text() notes = Path('windows/RELEASE_NOTES.md' if windows else 'RELEASE_NOTES.md').read_text()
feed = {'stable': 'version.json', 'beta': 'version-beta.json', feed = {'stable': 'version.json', 'beta': 'version-beta.json',
'windows-beta': 'version-windows-beta.json', 'windows-stable': 'version-windows.json'}[channel] 'windows-beta': 'version-windows-beta.json'}[channel]
server = os.environ['GITHUB_SERVER_URL'].rstrip('/') server = os.environ['GITHUB_SERVER_URL'].rstrip('/')
repo = os.environ['GITHUB_REPOSITORY'] repo = os.environ['GITHUB_REPOSITORY']
opener = urllib.request.build_opener(NoRedirect) opener = urllib.request.build_opener(NoRedirect)