PerishFire
e0d7a77230
fix(release): align stable notes public origin ( #5037 )
...
Co-authored-by: Siri-Ray <2667192167@qq.com >
2026-07-02 06:10:41 +00:00
PerishFire
0bf1b6d6b8
[codex] converge release workflows and stable dry-runs ( #4390 )
...
* fix(tools-pack): use junctions for Windows standalone peer deps
* fix(desktop): expose IPC during startup
* fix(tools-pack): preserve Windows inspect diagnostics
* fix(tools-pack): report Windows inspect status errors
* fix(packaged): use Electron net fetch for app protocol
* fix(packaged): load Windows renderer from web sidecar
* fix(desktop): show Windows packaged window during startup
* fix(packaged): disable Windows GPU startup
* fix(tools-pack): keep Windows core smoke observable
* fix(packaged): remove Windows startup probes
* fix(tools-pack): trace Windows desktop IPC status
* fix(tools-pack): add Windows IPC diagnose loop
* fix(release): default beta-s Windows updater feed
* chore: clean merged test eof
* refactor(release): unify prerelease channel model
* chore(release): close prerelease doc escape hatches
* refactor(release): converge release channel workflows
* fix(release): install toolchain in metadata jobs
* fix(release): build release package before contracts
* chore(release): bump development version to 0.10.1
* fix(e2e): seed windows packaged smoke runtime config
* fix(release): install toolchain for metadata publish
* fix(release): materialize betas metadata checkout
* chore(release): bump development version to 0.10.2
* fix(release): allow betas metadata cold start from s3
* fix(e2e): support betas packaged update scenarios
* fix(release): pass betas channel into packaged smoke
* fix(release): set betas channel during self-hosted builds
* fix(release): verify counted channel reservations
* fix(release): use pnpm cmd for betas windows publish
* fix(release): add betas manifest artifact fallback
* fix(release): skip beta-s public metadata fetch
* fix(release): read beta-s manifests from storage
* fix(release): cache beta windows tools-pack builds
* fix(release): inline beta mac tools-pack builds
* fix(pack): deep sign unsigned mac bundles
* docs(pack): document payload-first beta updater validation
* fix(release): align preview tools-pack cache flow
* fix(release): align prerelease tools-pack cache flow
* fix(release): pass github token to prerelease metadata
* fix(release): setup pnpm before feishu notify
* fix(release): add stable dry-run prepublish flow
* fix(release): accept completed prerelease metadata gate
* fix(release): require stable release branches
* fix(release): converge r2 access checks
* fix(updater): use release channel parser for defaults
* fix(updater): harden windows payload relaunch
* fix(release): converge updater smoke fixture contract
* test(e2e): require silent updater fixture output
* fix(release): align stable windows smoke build path
* fix(ci): include release workspace in validation
* fix(ci): repair release validation lanes
Generated-By: looper 0.9.10+codex.autoclean (runner=fixer, agent=codex)
* fix(ci): restore zero-install Feishu notification
Generated-By: looper 0.9.10+codex.autoclean (runner=fixer, agent=codex)
---------
Co-authored-by: Looper <looper@noreply.github.com >
2026-06-23 06:13:21 +00:00
PerishFire
7a1ad1a438
feat(packaged): add launcher payload updates ( #3812 )
...
* feat(packaged): add launcher payload runtime
* ci: focus launcher payload windows smoke
* ci: publish beta mac x64 launcher payload
* test(e2e): harden payload updater smoke
* fix(pack): inject launch config for installed windows smoke
* fix(daemon): allow packaged payload resource roots
* fix(updater): relaunch after payload update
* test(e2e): refresh windows updater UI status
* test(e2e): ensure windows smoke reaches main shell
* test(e2e): skip onboarding before windows updater smoke
* fix(updater): detach windows payload relaunch helper
* test(e2e): run payload smoke without updater dry run
* fix(desktop): relaunch windows payload updates on quit
* fix(updater): preserve installed payload relaunch target
* fix(updater): require launcher target for payload updates
Generated-By: looper 0.9.5 (runner=fixer, agent=codex)
* test(e2e): align mac x64 artifact mode assertion
* test(e2e): canonicalize launcher relaunch root
* fix(updater): validate launcher payload config before activation
Generated-By: looper 0.9.5 (runner=fixer, agent=codex)
* fix(updater): require live launcher target for payload updates
Generated-By: looper 0.9.5 (runner=fixer, agent=codex)
---------
Co-authored-by: Looper <looper@noreply.github.com >
2026-06-07 07:38:57 +00:00
PerishFire
8f6cdaaba1
Harden release-beta-s self-hosted beta lane ( #3641 )
...
* Fix Windows smoke launcher payload layout
* Harden release-beta-s runner probe
* Use cmd shell for release-beta-s probe
* Add win beta build script for self-hosted lane
* Keep release-beta-s checkout lightweight
* Use explicit local beta version for release-beta-s
* Install dependencies in beta build script
* Repair Electron dist before Windows beta build
* Add release-beta-s timings and diagnostics
* Polish release-beta-s observability guardrails
* Trace tools-pack cache materialization
* Reuse materialized workspace build cache
* Trace Windows packaging segments
* Trace Windows archive process details
* Reuse installer unpacked materialization
* Preserve reusable Windows unpacked projection
* Add fast smoke telemetry for self-hosted beta
* Cache Windows archive outputs for beta lane
* Tighten fast Windows smoke lane
* Scope Windows beta artifact reporting by target
* Clean stale Windows target artifacts
* Wire Windows Authenticode signing
* Expose self-hosted beta validation modes
* Add core Windows smoke profile
* Decouple core smoke from updater fixture version
* Trace Windows smoke lifecycle steps
* Skip unpacked materialization on NSIS cache hit
* Add Nexu S3 beta publisher
* Harden self-hosted Windows beta lane
* Use Windows PowerShell for publish probe
* Run publish probe via repo script
* Require explicit self-hosted S3 public origin
* Run real installer acceptance for external feeds
* Skip ready-prompt checks for external feeds
* Relax optional self-hosted update inputs
* Tolerate BOM in self-hosted publish probe
* Converge self-hosted beta metadata and signing flow
* Run self-hosted beta metadata prep on the runner lane
* Use Windows PowerShell for self-hosted beta metadata checks
* Bypass execution policy in self-hosted beta metadata checks
* Split self-hosted beta metadata publish
* Suppress mc output in beta publish helpers
* Split Windows NSIS payload cache layers
* Require fresh tool dist metadata
* Preserve Windows overlay payload paths
* Default beta-s gate to core
* Optimize win beta packaging reuse
* simplify windows full smoke lifecycle
* preserve onboarding state after windows upgrade smoke
* fix windows tools-pack test portability
* recover stale tools-pack locks
* Allow auto signing fallback for beta builds
* Add self-hosted beta mac arm64 lane
* Quote self-hosted signing choices
* Run self-hosted beta metadata on mac lane
* Use shallow metadata checkout on self-hosted beta
* Use sparse beta metadata checkout
* Make mac release profile bash-compatible
* Allow file sparse metadata checkout
* Isolate self-hosted metadata checkout
* Clear sparse skip-worktree before mac build
* Isolate self-hosted mac build checkout
* Run self-hosted beta publish without aws cli
* Use unsigned beta prefix for mixed platform publish
* Sparse checkout self-hosted beta publish
* Publish mac beta platform before metadata
* Pass mac publish release profile
* Probe mac signing keychain import
* Expand mac signing preflight variants
* Use sudo keychain helper for self-hosted mac signing
* Route self-hosted mac codesign through sudo wrapper
* Normalize mac signing identity name
* Harden self-hosted mac notarization
* Optimize self-hosted mac release cache
* Fix mac signing helper cleanup
* Retry transient mac notarization uploads
* Keep mac notarization fail-fast
* Reduce mac symlink diagnostics noise
* Normalize self-hosted beta platform inputs
* chore: bump beta base version to 0.9.1
* chore: tune release tools-pack cache retention
* test: add temporary cache validation marker
* chore: key windows nsis base payload by content
* Revert "test: add temporary cache validation marker"
This reverts commit e8487bfd3e .
* chore: probe windows nsis payload cache before materializing
* chore: align self-hosted beta smoke modes
* chore: skip mac smoke report upload when disabled
* chore: default self-hosted beta to publish both platforms
* chore: make beta signing modes explicit
* Add release report artifacts and metatool metadata
* Fix Windows release report zip publishing
* Remove artifact handoff from release beta self-hosted lane
* Fix release beta merge follow-ups
* Fix release beta install regressions
* Restore web build dependencies
* Route Windows beta downloads through mirrors
* Use PowerShell 7 for Windows beta lane
* Fix release beta preflight gates
Generated-By: looper 0.9.4 (runner=fixer, agent=codex)
* Fix Windows beta smoke update reuse
Generated-By: looper 0.9.4 (runner=fixer, agent=codex)
* Fix release beta review follow-ups
* Refresh Nix pnpm dependency hashes
Generated-By: looper 0.9.4 (runner=fixer, agent=codex)
* Fix Windows signtool fallback resolution
* Reject stale beta platform manifests
* Validate beta platform manifest run identity
Generated-By: looper 0.9.4 (runner=fixer, agent=codex)
* Validate beta manifest commit identity
Generated-By: looper 0.9.4 (runner=fixer, agent=codex)
* Allow beta metadata publish reruns
Generated-By: looper 0.9.4 (runner=fixer, agent=codex)
* Build tools-pack fully in beta Windows bootstrap
Generated-By: looper 0.9.4 (runner=fixer, agent=codex)
* Emit r2 metadata for Windows beta publish
Generated-By: looper 0.9.4 (runner=fixer, agent=codex)
* Stabilize beta publish browser test
Generated-By: looper 0.9.4 (runner=fixer, agent=codex)
* Stabilize Windows beta metadata smoke test
Generated-By: looper 0.9.4 (runner=fixer, agent=codex)
* Restore multi-platform Vela CLI package
* Refresh Nix pnpm dependency hashes
Generated-By: looper 0.9.5 (runner=fixer, agent=codex)
---------
Co-authored-by: Looper <looper@noreply.github.com >
2026-06-05 03:00:55 +00:00
lefarcen
2305a35768
ci(release): split Feishu streams — daily=beta, release-push=nightly ( #3474 )
...
Follow-up to #3462 . Two corrections:
- The per-push release/** stream must build the nightly channel (release-stable),
not beta. The daily 09:00 stream stays on the lighter beta channel.
- The nightly card was missing the macOS Intel download button; release-stable
builds mac arm64 + mac Intel (signed) + win unconditionally, so switching that
stream to it adds the Intel button for free.
Changes:
- release-stable.yml: add workflow_call (channel/nightly_version/ref inputs +
outputs incl. per-platform download URLs and previous_commit); add ref to every
checkout; pin GITHUB_SHA to the resolved build HEAD in metadata/publish; capture
the previous nightly commit before publish for the changelog baseline.
- release-beta.yml: expose mac_arm64_url + win_url as workflow_call outputs (the
rest of its workflow_call interface from #3462 is unchanged; daily still uses it).
- notify-release-feishu.yml: call release-stable channel=nightly; CHANNEL_LABEL=Nightly.
- notify-daily-feishu.yml: keep calling release-beta; CHANNEL_LABEL=Beta.
- notify.ts: channel-agnostic title/changelog via CHANNEL_LABEL; download buttons
from explicit per-platform URL outputs (mac_arm64/mac_intel/win/linux) instead of
re-fetching metadata.json — guarantees the Intel button on nightly.
Ref plumbing mirrors release-beta: scheduled callers run on main but build a
release branch, so checkouts take inputs.ref and metadata/publish pin GITHUB_SHA
so metadata.json (and the next run's changelog baseline) records the real commit.
2026-06-02 07:17:21 +00:00
lefarcen
6ffa75aa5b
ci(release): build beta + notify Feishu on release push and daily ( #3462 )
...
Reuse the release-beta pipeline as a workflow_call and add two thin caller
workflows that build a full beta ("nightly") package and post a Feishu card
with download links and the changelog since the previous beta:
- notify-release-feishu: triggers on every push to release/**, debounced
(concurrency cancel-in-progress), notifies FEISHU_RELEASE_WEBHOOK.
- notify-daily-feishu: cron 01:00 UTC (09:00 Asia/Shanghai) + manual; resolves
the active release branch (highest-semver release/vX.Y.Z) and builds it via
the new ref input, notifies FEISHU_DAILY_WEBHOOK.
release-beta gains a workflow_call entry (enable_* booleans + optional ref +
outputs) so callers reuse one build source. Because scheduled callers run on
main but must build a release branch, every checkout takes inputs.ref and the
metadata/publish jobs pin GITHUB_SHA to the resolved build HEAD so the published
metadata.json records the real built commit (and the next run's changelog
baseline stays correct).
The changelog needs zero extra state: the baseline is the previous beta's commit
read from beta/latest/metadata.json before this run overwrites it; download links
come from this build's version metadata.json. notify.ts renders a Feishu
interactive card and supports optional signed bots (FEISHU_*_SIGN_SECRET).
2026-06-02 04:41:50 +00:00
PerishFire
bfcafc81fd
feat(pack): add Windows portable zip target alongside NSIS installer ( #2937 )
...
Adds a new `--to zip` (and `--to all`) tools-pack Windows build target that
produces a portable `.zip` from the cached `win-unpacked` tree using the
bundled 7z. The zip lays files at the archive root so users can extract it
anywhere and launch `Open Design.exe` without going through the NSIS
installer, addressing the no-install download request.
Release plumbing is updated to publish the portable zip and its sha256
beside the existing installer on R2 for beta, preview, and stable channels
(default on, gated by `WINDOWS_INCLUDE_ZIP`/`WIN_INCLUDE_ZIP`). The
electron-updater `latest.yml` feed continues to point only at the
installer; the zip is a manual-download convenience and is intentionally
excluded from the in-app updater.
Closes #1121
Generated-By: looper 0.0.0-dev (runner=worker, agent=claude-code)
Co-authored-by: libertecode <libertecode@proton.me >
2026-05-26 06:14:44 +00:00
PerishFire
526c7f7c26
Fix packaged auto-update release validation ( #2565 )
...
* fix: tighten packaged updater flow
* test: prune noisy extended ui coverage
* fix: hide unpublished release artifacts
* test: validate release updater channels
* fix: align prerelease release namespaces
2026-05-21 18:15:53 +08:00
PerishFire
bb13eee765
chore: optimize CI and beta release runtime ( #2231 )
...
* chore(ci): add runtime trace summaries
* chore(ci): tighten measured workspace steps
* chore(release): tighten beta setup steps
* chore(release): slim beta windows smoke
* chore(ci): shard daemon tests
* chore(ci): harden runtime trace lookup
* chore(release): avoid mac pnpm cache in beta
* chore(ci): split critical playwright checks
* chore(release): publish beta platforms from builders
* test(e2e): update beta release workflow expectation
* chore(ci): stop gating PRs on nix check
* fix(release): keep beta latest complete
2026-05-19 18:06:28 +08:00
PerishCode
43b1b94c8e
Add preview release channel
2026-05-14 19:15:16 +08:00
PerishFire
976edaf38e
test: harden e2e smoke and release reports ( #1140 )
...
* test: harden e2e inspect specs
* test: wire e2e release reports
* chore: bump packaged beta base to 0.6.1
* test: run release smoke vitest directly
* test: add suite-owned tools-dev lifecycle
* ci: harden stable release packaging
* fix(release,e2e): gate stable signing on verify and harden suite cleanup
- restore `needs: [metadata, verify]` on the stable release `build_mac`,
`build_mac_intel`, `build_win`, and `build_linux` jobs so Apple
signing/notarization and Windows release builds cannot run before
pnpm guard, typecheck, and layout checks complete on the metadata commit.
- in `runToolsDevSuite`, drop the `started` flag and always attempt
`stopToolsDevWeb` in `finally`; record stop errors in diagnostics, and
when the test body succeeded, escalate the stop failure to the suite
result and rethrow — so orphan daemon/web processes from an interrupted
`startToolsDevWeb` or a broken shutdown can no longer pass silently.
Addresses PR #1140 review feedback from lefarcen and mrcfps.
2026-05-11 13:11:16 +08:00
PerishFire
cc343f8828
ci: optimize beta release packaging cache ( #1095 )
...
* ci: optimize beta release packaging cache
* fix: version windows builder cache
* fix: forward linux app version in container
2026-05-10 10:11:05 +08:00
Gavin Zeng
7518cfc107
feat: add macOS Intel (x64) build support to release workflows ( #759 )
...
* feat: add macOS Intel (x64) build support to release workflows
Add build_mac_intel job to both release-beta.yml and release-stable.yml
using macos-13 runners (last Intel-based GitHub Actions runner).
Key changes:
- release-beta.yml: add enable_mac_intel input (default false), build
job, and wire into publish/verify/summary
- release-stable.yml: add always-on build_mac_intel job, wire into
publish (downloads + copies to GitHub Release), verify, and summary
- publish.sh: add ENABLE_MAC_INTEL uploads, outputs, and metadata entry
- verify.sh: add mac-intel URL verification when enabled
- summary.sh: add macOS x64 (Intel) row to platform/report tables
- mac-intel.sh: new asset script for unsigned DMG+ZIP production
Intel builds are unsigned (like Windows). No auto-update feed.
Artifact naming: open-design-<ver>.unsigned-mac-x64.{dmg,zip}
Closes #746
* fix: resolve beta macIntel asset name mismatch (P1)
Add MAC_INTEL_ASSET_SUFFIX to publish.sh (mirroring existing
WIN_ASSET_SUFFIX / LINUX_ASSET_SUFFIX pattern) so that the beta
publish job can correctly locate unsigned Intel artifacts.
- publish.sh: add mac_intel_asset_suffix variable with fallback
- release-beta.yml: pass MAC_INTEL_ASSET_SUFFIX: .unsigned to publish
---------
Co-authored-by: ZengGanghui <zghui0@gmail.com >
2026-05-09 19:50:50 +08:00
PerishFire
dcfab797c2
[codex] Add stable nightly promotion gate ( #962 )
...
* Upload beta e2e spec reports to R2
* Expose beta report URLs in summary
* Complete Indonesian deploy locale keys
* chore: factor release workflow scripts
* chore: bump packaged beta base version
* test: wait for mac packaged runtime health
* fix: capture mac packaged startup logs
* chore: improve mac release build observability
* fix: ad-hoc sign unsigned mac builds
* chore: diagnose mac packaged startup
* fix: relax unsigned mac launch signing
* chore: improve mac launch diagnostics
* chore: simplify beta mac release artifacts
* fix: align packaged mac smoke launch config
* fix: externalize mac daemon wasm dependency
* chore: require signed stable mac releases
* fix: use stable app version for nightly package builds
* chore: clean release artifacts after publish
* chore: publish beta reports as zip
* ci: disable beta mac tools-pack cache
* fix: skip mac framework binary symlinks when signing
* fix: sign mac framework version bundles
* ci: disable beta mac pnpm cache
* chore: align stable release reports
* ci: require matching nightly before stable release
* ci: avoid mac pnpm cache for packaged smoke
2026-05-08 21:48:54 +08:00