ActivityWatch / ActivityWatch/activitywatch

refactor(ci): unify build + release workflows into a single release.yml pipeline

未关闭
#1,219 0 条评论 0 个 reaction 已指派 0 人 在 GitHub 查看
主要语言
Python
星标
18.9k
派生
1k
平均合并
1 天 4 小时
30 天内合并 PR
28

描述

## Summary
The new dev-release workflow in #1217 works, but the release/build architecture is now split across:
- `.github/workflows/dev-release.yml`
- `.github/workflows/build.yml`
- `.github/workflows/build-tauri.yml`

This is functional, but harder to reason about than the unified `release.yml` design we ended up with in `gptme/gptme`.

## Why this follow-up exists
In ActivityWatch/activitywatch#1217, Erik asked why we didn't use the cleaner unified `release.yml` structure from `gptme/gptme`.

The answer is basically scope control: #1217 started as the smallest safe change that could add CI-gated dev prereleases on top of ActivityWatch's current workflow layout. That was the right call for landing the feature quickly, but the architectural cleanup still makes sense.

## Proposed direction
Refactor the current release/build setup into a single `release.yml`-style workflow that:
- handles both stable and prerelease tagging paths coherently
- owns release creation logic in one place
- dispatches/reuses build steps instead of duplicating release semantics across multiple workflows
- keeps artifact naming/version derivation consistent across AW Qt / Tauri outputs
- makes the CI gate for dev releases easier to understand and audit

## Constraints
- Keep the safety properties added in #1217:
- exact-SHA tagging after CI verification
- robust self-exclusion for current workflow run
- explicit handling of cancelled/startup_failure conclusions
- Don't regress stable release behavior
- Preserve draft prerelease behavior unless we intentionally change it

## Context
- PR: ActivityWatch/activitywatch#1217
- Reference design: `gptme/gptme/.github/workflows/release.yml`

## Outcome
This would reduce workflow sprawl and make future release automation changes less brittle.

贡献指南

打开贡献指南

评估

这个 Issue 还没有评估数据。

把新 issue 发到你的邮箱

精选适合新手参与的 GitHub issue 摘要。