release pipeline fixes
tests / package-smoke-linux (push) Skipped
tests / package-smoke-windows (push) Skipped
tests / package-smoke-macos (push) Skipped
tests / windows (pull_request) Skipped
tests / macos (pull_request) Skipped
tests / package-smoke-linux (pull_request) Skipped
tests / package-smoke-windows (pull_request) Skipped
tests / package-smoke-macos (pull_request) Skipped
tests / macos (push) Successful in 1m19s
tests / linux (push) Successful in 5m48s
tests / linux (pull_request) Successful in 5m20s
tests / windows (push) Canceled after 30m5s
tests / package-smoke-linux (push) Skipped
tests / package-smoke-windows (push) Skipped
tests / package-smoke-macos (push) Skipped
tests / windows (pull_request) Skipped
tests / macos (pull_request) Skipped
tests / package-smoke-linux (pull_request) Skipped
tests / package-smoke-windows (pull_request) Skipped
tests / package-smoke-macos (pull_request) Skipped
tests / macos (push) Successful in 1m19s
tests / linux (push) Successful in 5m48s
tests / linux (pull_request) Successful in 5m20s
tests / windows (push) Canceled after 30m5s
Signed-off-by: galeon <dertiellis@gmail.com>
This commit is contained in:
1 parent
4463d4e5da
commit
1817157e4d
9 files changed
+200
-19
No files matched your search
@@ -40,15 +40,41 @@ cmake --build build
|
||||
|
||||
Из Qt Creator проект открывается как обычный CMake-проект.
|
||||
|
||||
Версия приложения задаётся в начале `CMakeLists.txt` двумя значениями:
|
||||
### Версия и канал сборки
|
||||
|
||||
- `project(BiLauncher VERSION x.y.z)` — только числа. Отсюда `PROJECT_VERSION` идёт в ресурс версии
|
||||
`.exe`, в `Info.plist` и в установщик: все три принимают только числовую версию.
|
||||
- `LAUNCHER_VERSION_SUFFIX` — метка пре-релиза, например `-dev` или `-rc1`. Для релиза пустая.
|
||||
В репозитории хранится только число: `project(BiLauncher VERSION x.y.z)` в `CMakeLists.txt`. Оно
|
||||
одинаковое во всех ветках, поэтому merge `dev` → `rc` → `master` версию не перетирает и не даёт
|
||||
конфликтов. `PROJECT_VERSION` идёт в ресурс версии `.exe`, в `Info.plist` и в установщик: все три
|
||||
принимают только числовую версию.
|
||||
|
||||
Полная строка `LAUNCHER_VERSION` = `PROJECT_VERSION` + суффикс (`1.0.1-dev`) уходит дефайном в код:
|
||||
в `QCoreApplication::applicationVersion`, в аргументы запуска игры и в подпись «Версия: …» в левом
|
||||
верхнем углу окна. Почему так, см. [ADR-0002](adr/0002-launcher-version-display.md).
|
||||
Канал (dev / rc / релиз) в коде не записан — его на каждой сборке вычисляет
|
||||
`cmake/LauncherVersion.cmake` и пишет в сгенерированный `<build>/generated/launcherversion.h`
|
||||
(`LAUNCHER_VERSION`, `LAUNCHER_CHANNEL`). Порядок определения:
|
||||
|
||||
1. `-DLAUNCHER_BUILD_VERSION=1.0.1-rc2` — полная версия от CI; база обязана совпадать с
|
||||
`project()`, иначе configure падает;
|
||||
2. тег на HEAD: `vx.y.z` — релиз, `vx.y.z-rcN` — rc;
|
||||
3. ветка (из `GITHUB_HEAD_REF`/`GITHUB_REF_NAME` или git): `master` — релиз, `rc` и `beta` — rc;
|
||||
4. любая другая ветка или сборка без git — dev.
|
||||
|
||||
| Сборка | `LAUNCHER_VERSION` | В окне |
|
||||
|---------------------------|----------------------|-----------------|
|
||||
| релиз (master, `vx.y.z`) | `1.0.1` | `Версия: 1.0.1` |
|
||||
| rc из CI (`vx.y.z-rcN`) | `1.0.1-rc2` | + бейдж RC |
|
||||
| rc локально | `1.0.1-rc` | + бейдж RC |
|
||||
| dev | `1.0.1-dev+a1b2c3d` | + бейдж DEV |
|
||||
|
||||
У dev-сборки после `+` — короткий хэш коммита, `.dirty` — есть незакоммиченные правки в
|
||||
отслеживаемых файлах. Генерация идёт на каждой сборке, так что после `git checkout` другой
|
||||
ветки reconfigure не нужен.
|
||||
|
||||
Полная строка уходит в `QCoreApplication::applicationVersion`, в аргументы запуска игры и в
|
||||
подпись «Версия: …» в левом верхнем углу окна; бейдж канала QML берёт из её суффикса. Почему так,
|
||||
см. [ADR-0002](adr/0002-launcher-version-display.md).
|
||||
|
||||
**Когда поднимать версию.** Номер поднимается в `dev` в начале цикла (сразу после релиза) и
|
||||
дальше приходит в `rc` и `master` через merge. Хотфикс прямо в `rc` или `master` — правка и bump
|
||||
patch там же, затем обратный merge `master` → `rc` → `dev`.
|
||||
|
||||
## Что собирается
|
||||
|
||||
|
||||
Reference in new issue
Block a user