fix(ci): один тег на продукт-реліз замість зоопарку app@/v/owner-v - #23
Merged
Merged
Conversation
GitHub-релізи щоразу показували "What's Changed" від дуже старої бази (v0.4.1 / owner-v0.10.0), бо generate_release_notes: true довіряло автовизначенню GitHub, а воно "залипало" на останньому релізному коміті від людини (усі наступні — від github-actions[bot]). Зводимо build-тригер і changelog-якір в один тег на продукт (app@X.Y.Z, owner@X.Y.Z) і рахуємо previous_tag_name явно, версійним сортом у межах тієї самої продуктової сім'ї — новий спільний composite action generate-scoped-release. Updater-канал app переїхав на app-latest (task-latest лишається постійним legacy-аліасом для вже встановлених білдів).
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.
Проблема
GitHub-релізи (
v0.6.x,owner-v0.x) щоразу показували "What's Changed" віддуже старої бази (
v0.4.1/owner-v0.10.0) замість дельти від попередньогорелізу. Причина:
generate_release_notes: trueдовіряло автовизначеннюGitHub, а воно "залипає" на останньому релізному коміті людини — усі
наступні релізні коміти йдуть від
github-actions[bot], і GitHub не бачитьїх як "попередній реліз".
Ширший корінь: на одній історії живуть 4 сім'ї тегів на 2 продукти —
app@X.Y.Z+vX.Y.Z(build-тригер) для app,owner@X.Y.Z+owner-vX.Y.Zдля owner. Подвійний тег на продукт — буквальний канон
n-tauri.mdc,розрахований на один продукт на репо;
owner-v*— вимушена імпровізаціяцього репо під два продукти.
Зміни
generate-scoped-release:знаходить попередній тег тієї самої продуктової сім'ї (спільний префікс до
@) версійним сортом і рахує release-notes явно черезgenerateReleaseNotes({ previous_tag_name }), замість довіри автовизначенню.release.yml/release-owner.yml: build-тригер теперapp@*/owner@*(старі
v*/owner-v*лишені в списку тригерів — цього вимагає вендоренийканон
n-tauri.mdc, лінт це перевіряє й автопідправляє).changelog-release.yml: більше не створює окреміvX/owner-vXтеги —по одному тегу на продукт-реліз; dispatch іде на
--ref app@$VER/--ref owner@$VER.app/src-tauri/tauri.conf.json: updater endpoint переїхав на каналapp-latest;task-latestлишається постійним legacy-аліасом (той самийlatest.json) для вже встановлених білдів, щоб не ламати їм автооновлення.Не в цьому PR
v*/owner-v*GitHub-релізів (реальні DMG-артефакти,публічний незворотний стан) — за планом робиться після того, як перший
реліз за новою схемою (
app@X.Y.Z+1/owner@X.Y.Z+1) підтвердженопройде весь цикл (build → DMG →
app-latest/task-latestоновлені).releases/latest/download/latest.json,неоднозначний між продуктами) — preexisting окрема проблема, поза скоупом.
Test plan
npx @7n/rules lint— чисто (лишились 2 непов'язані pre-existingпорушення:
owner/package.jsonбез пари Vue-пакетів,lint-k8s.ymlshellcheck — обидва винесені в окремі фонові тікети, не чіпались тут)
actionlint/bunx github-actionlint— чисто на змінених workflowchangelog-release.yml→release.yml/release-owner.yml, перевіритиgh release view app@<нова> --json body(дельта лише від попередньогоapp@…, неv0.4.1) іapp-latest/task-latestassets