feat(ci): skip .deb rebuild when version already published
build-deb now checks the Debian registry first and skips the slow source compile+upload when the pinned version already exists. Add a force_deb workflow_dispatch input to rebuild anyway, and make upload.sh idempotent (HTTP 409 -> already published, skip). Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
This commit is contained in:
@@ -40,6 +40,8 @@ prepare ──► build-deb ──► build-image ──► package-helm
|
||||
- `.deb` - источник истины: `build-image` и `package-hosted` имеют `needs: build-deb`
|
||||
И дополнительно проверяют, что версия `3.2.8+git` уже опубликована в Debian-реестре
|
||||
(GET `dists/noble/main/binary-amd64/Packages`), иначе fail.
|
||||
- `build-deb` пропускает долгую пересборку, если версия уже в реестре. Принудительно -
|
||||
input `force_deb=true`. Заливка идемпотентна: `upload.sh` пропускает HTTP 409 (уже есть).
|
||||
- Авторизация: репо-секреты `PACKAGES_USER` / `PACKAGES_TOKEN` (Gitea token, scope
|
||||
`write:package`).
|
||||
- Раннер: `ubuntu-latest` с доступным Docker.
|
||||
@@ -90,8 +92,9 @@ prepare ──► build-deb ──► build-image ──► package-helm
|
||||
- Образ при сборке тянет .deb из Debian-реестра Gitea - предполагается публичный read для
|
||||
owner `pub`. Если реестр приватный, сборку образа надо чинить (read-токен/buildkit secret),
|
||||
а на нодах нужен `DEB_AUTH` для apt.
|
||||
- Реестр может отклонить повторную заливку той же версии .deb (релиз - переиздание версии
|
||||
требует bump `VERSION`).
|
||||
- Повторная заливка той же версии .deb обрабатывается: `build-deb` её пропускает, а
|
||||
`upload.sh` не падает на HTTP 409. Переиздать изменённое содержимое той же версии нельзя -
|
||||
нужно либо bump `VERSION`, либо удалить пакет в Gitea. `force_deb` только пересобирает.
|
||||
- Пароль БД: в hosted - в `.env_cnf` (gitignored, `*.env_cnf`); в k8s - в Secret. В git не
|
||||
попадает.
|
||||
|
||||
|
||||
Reference in New Issue
Block a user