Убраны short-sha теги образа: в Hub/Harbor публикуются только SemVer и latest.
This commit is contained in:
Vendored
+9
-16
@@ -30,7 +30,6 @@ pipeline {
|
|||||||
HARBOR_REGISTRY = 'hub.antropoff.ru'
|
HARBOR_REGISTRY = 'hub.antropoff.ru'
|
||||||
HARBOR_IMAGE = 'hub.antropoff.ru/devops-tools/wrapped'
|
HARBOR_IMAGE = 'hub.antropoff.ru/devops-tools/wrapped'
|
||||||
DOCKERHUB_IMAGE = 'inecs/wrapped'
|
DOCKERHUB_IMAGE = 'inecs/wrapped'
|
||||||
// RELEASE_TAG — после checkout (с agent none GIT_COMMIT ещё нет → валидация env падает)
|
|
||||||
BUILDX_BUILDER = "jenkins-wrapped-${env.BUILD_NUMBER}"
|
BUILDX_BUILDER = "jenkins-wrapped-${env.BUILD_NUMBER}"
|
||||||
DEPLOY_JOB = 'devops-tools/wrapped/wrapped-deploy/main'
|
DEPLOY_JOB = 'devops-tools/wrapped/wrapped-deploy/main'
|
||||||
TZ = 'Europe/Moscow'
|
TZ = 'Europe/Moscow'
|
||||||
@@ -60,12 +59,7 @@ pipeline {
|
|||||||
if (!env.IMAGE_VERSION) {
|
if (!env.IMAGE_VERSION) {
|
||||||
error('VERSION file is empty')
|
error('VERSION file is empty')
|
||||||
}
|
}
|
||||||
if (!env.GIT_COMMIT) {
|
|
||||||
error('GIT_COMMIT is empty after checkout')
|
|
||||||
}
|
|
||||||
env.RELEASE_TAG = env.GIT_COMMIT.take(7)
|
|
||||||
echo "IMAGE_VERSION from VERSION → ${env.IMAGE_VERSION}"
|
echo "IMAGE_VERSION from VERSION → ${env.IMAGE_VERSION}"
|
||||||
echo "RELEASE_TAG → ${env.RELEASE_TAG}"
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@@ -89,7 +83,7 @@ pipeline {
|
|||||||
set -eux
|
set -eux
|
||||||
|
|
||||||
test -n "${IMAGE_VERSION}"
|
test -n "${IMAGE_VERSION}"
|
||||||
echo "Building tags: ${IMAGE_VERSION}, ${RELEASE_TAG}, latest"
|
echo "Building tags: ${IMAGE_VERSION}, latest (no short-sha)"
|
||||||
|
|
||||||
echo "$HARBOR_PASS" | docker login "$HARBOR_REGISTRY" -u "$HARBOR_USER" --password-stdin
|
echo "$HARBOR_PASS" | docker login "$HARBOR_REGISTRY" -u "$HARBOR_USER" --password-stdin
|
||||||
echo "$DOCKERHUB_PASS" | docker login -u "$DOCKERHUB_USER" --password-stdin
|
echo "$DOCKERHUB_PASS" | docker login -u "$DOCKERHUB_USER" --password-stdin
|
||||||
@@ -98,27 +92,26 @@ pipeline {
|
|||||||
docker buildx create --name "$BUILDX_BUILDER" --driver docker-container --use
|
docker buildx create --name "$BUILDX_BUILDER" --driver docker-container --use
|
||||||
docker buildx inspect --bootstrap >/dev/null
|
docker buildx inspect --bootstrap >/dev/null
|
||||||
|
|
||||||
|
# Arch-слои только в Harbor (промежуточные теги), не в Docker Hub
|
||||||
docker buildx build \
|
docker buildx build \
|
||||||
--platform linux/amd64 \
|
--platform linux/amd64 \
|
||||||
--provenance=false --sbom=false --push \
|
--provenance=false --sbom=false --push \
|
||||||
-t "${HARBOR_IMAGE}:${RELEASE_TAG}-amd64" \
|
-t "${HARBOR_IMAGE}:${IMAGE_VERSION}-amd64" \
|
||||||
-t "${DOCKERHUB_IMAGE}:${RELEASE_TAG}-amd64" \
|
|
||||||
-f Dockerfile .
|
-f Dockerfile .
|
||||||
|
|
||||||
docker buildx build \
|
docker buildx build \
|
||||||
--platform linux/arm64 \
|
--platform linux/arm64 \
|
||||||
--provenance=false --sbom=false --push \
|
--provenance=false --sbom=false --push \
|
||||||
-t "${HARBOR_IMAGE}:${RELEASE_TAG}-arm64" \
|
-t "${HARBOR_IMAGE}:${IMAGE_VERSION}-arm64" \
|
||||||
-t "${DOCKERHUB_IMAGE}:${RELEASE_TAG}-arm64" \
|
|
||||||
-f Dockerfile .
|
-f Dockerfile .
|
||||||
|
|
||||||
|
# Публичные теги: только SemVer + latest
|
||||||
for IMAGE in "$HARBOR_IMAGE" "$DOCKERHUB_IMAGE"; do
|
for IMAGE in "$HARBOR_IMAGE" "$DOCKERHUB_IMAGE"; do
|
||||||
docker buildx imagetools create \
|
docker buildx imagetools create \
|
||||||
-t "${IMAGE}:${RELEASE_TAG}" \
|
|
||||||
-t "${IMAGE}:${IMAGE_VERSION}" \
|
-t "${IMAGE}:${IMAGE_VERSION}" \
|
||||||
-t "${IMAGE}:latest" \
|
-t "${IMAGE}:latest" \
|
||||||
"${IMAGE}:${RELEASE_TAG}-amd64" \
|
"${HARBOR_IMAGE}:${IMAGE_VERSION}-amd64" \
|
||||||
"${IMAGE}:${RELEASE_TAG}-arm64"
|
"${HARBOR_IMAGE}:${IMAGE_VERSION}-arm64"
|
||||||
done
|
done
|
||||||
|
|
||||||
echo "--- Harbor ---"
|
echo "--- Harbor ---"
|
||||||
@@ -146,7 +139,7 @@ pipeline {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
success {
|
success {
|
||||||
echo "✓ Build OK: ${DOCKERHUB_IMAGE}:{${RELEASE_TAG},${IMAGE_VERSION},latest}"
|
echo "✓ Build OK: ${DOCKERHUB_IMAGE}:{${IMAGE_VERSION},latest}"
|
||||||
}
|
}
|
||||||
failure {
|
failure {
|
||||||
echo "✗ Build/push не удались — Deploy не запускается"
|
echo "✗ Build/push не удались — Deploy не запускается"
|
||||||
@@ -185,7 +178,7 @@ pipeline {
|
|||||||
post {
|
post {
|
||||||
success {
|
success {
|
||||||
echo "✓ Version: ${IMAGE_VERSION}"
|
echo "✓ Version: ${IMAGE_VERSION}"
|
||||||
echo "✓ Image: ${DOCKERHUB_IMAGE}:{${RELEASE_TAG},${IMAGE_VERSION},latest}"
|
echo "✓ Image: ${DOCKERHUB_IMAGE}:{${IMAGE_VERSION},latest}"
|
||||||
echo "✓ Deploy: ${DEPLOY_JOB} triggered (async)"
|
echo "✓ Deploy: ${DEPLOY_JOB} triggered (async)"
|
||||||
}
|
}
|
||||||
failure {
|
failure {
|
||||||
|
|||||||
@@ -443,7 +443,7 @@ docker buildx build \
|
|||||||
| Harbor | `hub.antropoff.ru/devops-tools/wrapped` |
|
| Harbor | `hub.antropoff.ru/devops-tools/wrapped` |
|
||||||
| Docker Hub | `inecs/wrapped` |
|
| Docker Hub | `inecs/wrapped` |
|
||||||
|
|
||||||
Теги на каждый реестр: `:<semver>` (ровно из `VERSION` в коммите), `:<short-sha>`, `:latest`.
|
Публичные теги на каждый реестр: `:<semver>` (из `VERSION` в коммите) и `:latest`. Short-sha больше не пушится. Промежуточные `:<semver>-amd64` / `-arm64` остаются только в Harbor для сборки multi-arch manifest.
|
||||||
|
|
||||||
### Версионирование
|
### Версионирование
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user