[codex] Add desktop release workflow#4
Merged
Conversation
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
What this PR does
Adds a manually triggered desktop release workflow that builds OpenWork installers for macOS, Windows, and Linux, uploads the generated installers as GitHub Actions artifacts, and can publish them to GitHub Releases when dry run mode is disabled.
The workflow now takes a desktop app
versioninput, normalizes0.0.2orv0.0.2into package version0.0.2and release tagv0.0.2, then fails before building if the source versions do not match the requested release version.Why it's needed
OpenWork already has local Electron packaging commands, but there was no GitHub Actions path for producing cross-platform desktop installers or attaching them to the Release tab. This workflow gives maintainers a safe dry-run path first, then an explicit publish path for draft or public releases.
Keeping the app package version and Release tag aligned is also the base contract needed before wiring electron auto-update metadata later.
Reviewer Test Plan
How to verify
Run the
Desktop Releaseworkflow from GitHub Actions with a semver version that matches the source package versions. With the current source, use0.0.1orv0.0.1and keepdry_run=true; confirm the version validation job passes, the macOS, Windows, and Linux build jobs complete, theDry Run Summarylists generated assets, and no GitHub Release is created or updated.To test a future
0.0.2release, first updatepackage.json,apps/electron/package.json, andpackages/shared/package.jsonto0.0.2; otherwise the workflow should fail before building. For release publishing, rerun withdry_run=falseanddraft=true, then confirm the draft release uses tagv0.0.2and contains the uploaded installer assets.Evidence (Before & After)
N/A. This is CI release automation, not a user-visible UI change.
Tested on
Environment (optional)
Local checks on macOS:
bun run check-release-version --version 0.0.1bun run check-release-version --version v0.0.1bun run check-release-version --version 0.0.2fails as expected while source versions are still0.0.1ruby -e 'require "yaml"; YAML.load_file(".github/workflows/desktop-release.yml"); puts "YAML OK"'go run github.com/rhysd/actionlint/cmd/actionlint@latest .github/workflows/desktop-release.ymlgit diff --checkRisk & Scope
Linked Issues
N/A
中文说明
What this PR does
新增一个手动触发的桌面端发布 workflow,可以为 OpenWork 构建 macOS、Windows、Linux 安装包,把生成的安装包上传为 GitHub Actions artifacts,并且在关闭 dry run 后把这些安装包发布到 GitHub Releases。
这个 workflow 现在使用桌面端 app
version输入,会把0.0.2或v0.0.2统一成 package version0.0.2和 release tagv0.0.2。如果源码里的版本号和这次要发布的版本不一致,workflow 会在 build 前失败。Why it's needed
OpenWork 已经有本地 Electron 打包命令,但之前没有 GitHub Actions 链路来生成跨平台桌面端安装包,也没有把安装包挂到 Release tab 的自动流程。这个 workflow 先提供安全的 dry run 路径,再提供明确的 draft 或公开发布路径。
保持 app package version 和 Release tag 一致,也是后续接 electron 自动更新 metadata 前必须有的基础约定。
Reviewer Test Plan
How to verify
在 GitHub Actions 里运行
Desktop Releaseworkflow,输入和源码 package 版本一致的 semver。以当前源码为例,输入0.0.1或v0.0.1,保持dry_run=true;确认版本校验 job 通过,macOS、Windows、Linux 构建 job 都完成,Dry Run Summary能列出生成的资产,并确认没有创建或更新 GitHub Release。如果要测试未来的
0.0.2发布,需要先把package.json、apps/electron/package.json、packages/shared/package.json都更新到0.0.2;否则 workflow 应该会在 build 前失败。要验证 Release 上传时,用dry_run=false和draft=true重新运行,然后确认 draft release 的 tag 是v0.0.2,并且包含上传的安装包资产。Evidence (Before & After)
N/A。这是 CI 发布自动化,不是用户可见 UI 改动。
Tested on
Environment (optional)
macOS 本地检查:
bun run check-release-version --version 0.0.1bun run check-release-version --version v0.0.1bun run check-release-version --version 0.0.2在源码仍是0.0.1时按预期失败ruby -e 'require "yaml"; YAML.load_file(".github/workflows/desktop-release.yml"); puts "YAML OK"'go run github.com/rhysd/actionlint/cmd/actionlint@latest .github/workflows/desktop-release.ymlgit diff --checkRisk & Scope
Linked Issues
N/A