fix(ci): commit-msg-lint и commit-prod-image-bump на alpine/git pre-baked

This commit is contained in:
Александр Зимин
2026-06-20 21:58:58 +00:00
parent 39568564a7
commit 0fb0848964
+16 -15
View File
@@ -98,17 +98,16 @@ default:
# содержит весь changelog со всеми историческими commit'ами — false positive.
commit-msg-lint:
stage: test
image: repo.nstart.cloud/dockerhub/library/alpine:3.20
# alpine/git: git + grep (busybox) + ca-certs pre-installed, никакого
# `apk add` не нужно. Раньше использовали alpine:3.20 + apk install, но
# Nexus alpine mirror (`repo.nstart.cloud/repository/alpine/...`) даёт
# IO ERROR на v3.20 APKINDEX (см. pipeline 14917). До починки mirror'а
# — используем pre-baked image. entrypoint: [""] сбрасывает ENTRYPOINT=["git"]
# этого image — иначе runner выполняет `git <script>` вместо `sh`.
image:
name: repo.nstart.cloud/dockerhub/alpine/git:v2.45.2
entrypoint: [""]
script:
# Runner не имеет outbound к dl-cdn.alpinelinux.org (Permission denied) —
# переадресуем apk на internal Nexus mirror. Это нужно во всех Alpine
# jobs (commit-msg-lint, build-docs ниже, commit-prod-image-bump).
- sed -i 's|https://dl-cdn.alpinelinux.org/alpine|https://repo.nstart.cloud/repository/alpine|g' /etc/apk/repositories
# apk update обязателен ПОСЛЕ repo swap: image приходит с pre-cached
# APKINDEX (старые package versions). Без update apk ищет старые .apk
# файлы которых нет в нашем mirror → HTTP 404. См. job 36025 история.
- apk update
- apk add --no-cache git grep
- |
set -e
# Сравниваем с last common ancestor relative к main для MR pipeline'ов,
@@ -739,7 +738,11 @@ release:
# Allow_failure: true — manual deploy backup path остаётся если что.
commit-prod-image-bump:
stage: release
image: repo.nstart.cloud/dockerhub/library/alpine:3.20
# alpine/git: git pre-installed, без apk add. См. commit-msg-lint.
# entrypoint: [""] — overrides image's ENTRYPOINT=["git"].
image:
name: repo.nstart.cloud/dockerhub/alpine/git:v2.45.2
entrypoint: [""]
needs:
# На tag pipeline images приходят через retag-* (не docker-*) после
# !205 (ci/retag-on-tag-pipeline). Поэтому needs ссылается на retag-*.
@@ -779,10 +782,8 @@ commit-prod-image-bump:
echo "═══════════════════════════════════════════════════════════════"
exit 0
fi
# Internal Alpine mirror — см. commit-msg-lint выше для контекста.
- sed -i 's|https://dl-cdn.alpinelinux.org/alpine|https://repo.nstart.cloud/repository/alpine|g' /etc/apk/repositories
- apk update
- apk add --no-cache git
# git уже встроен в alpine/git image (см. commit-msg-lint), apk install
# не нужен. Image менялся в `image:` выше — alpine:3.20 → alpine/git.
script:
- |
set -euo pipefail