Update .gitlab-ci.yml file

This commit is contained in:
Slava
2025-03-03 16:45:55 +00:00
parent ee85ee44d0
commit 4687e46c82

View File

@@ -37,9 +37,10 @@ push:
stage: push stage: push
script: script:
- | - |
CURRENT_IMAGE_HASH=$(docker inspect --format='{{index .RepoDigests 0}}' $CI_REGISTRY/$CI_PROJECT_PATH:$CI_COMMIT_REF_SLUG) CURRENT_IMAGE_HASH=$(docker inspect --format='{{if .RepoDigests}}{{index .RepoDigests 0}}{{else}}no_digest{{end}}' $CI_REGISTRY/$CI_PROJECT_PATH:$CI_COMMIT_REF_SLUG)
EXISTING_IMAGE_HASH=$(curl -s --header "PRIVATE-TOKEN: $CI_JOB_TOKEN" "https://gl.beaconborn.ru/api/v4/projects/$CI_PROJECT_ID/registry/repositories/1/tags/$CI_COMMIT_REF_SLUG" | jq -r '.digest') EXISTING_IMAGE_HASH=$(curl -s --header "PRIVATE-TOKEN: $CI_JOB_TOKEN" "https://gl.beaconborn.ru/api/v4/projects/$CI_PROJECT_ID/registry/repositories/1/tags/$CI_COMMIT_REF_SLUG" | jq -r '.digest')
if [ "$CURRENT_IMAGE_HASH" != "$EXISTING_IMAGE_HASH" ]; then
if [ "$CURRENT_IMAGE_HASH" != "$EXISTING_IMAGE_HASH" ] && [ "$CURRENT_IMAGE_HASH" != "no_digest" ]; then
echo "Image has changed, pushing to the registry..." echo "Image has changed, pushing to the registry..."
echo "$CI_REGISTRY_PASSWORD" | docker login -u "$CI_REGISTRY_USER" --password-stdin $CI_REGISTRY echo "$CI_REGISTRY_PASSWORD" | docker login -u "$CI_REGISTRY_USER" --password-stdin $CI_REGISTRY
docker push $CI_REGISTRY/$CI_PROJECT_PATH:$CI_COMMIT_REF_SLUG docker push $CI_REGISTRY/$CI_PROJECT_PATH:$CI_COMMIT_REF_SLUG
@@ -48,5 +49,6 @@ push:
else else
echo "Image is unchanged, skipping push." echo "Image is unchanged, skipping push."
fi fi
only: only:
- main - main