fixes
This commit is contained in:
@@ -1,7 +1,7 @@
|
|||||||
image: docker:latest
|
|
||||||
stages:
|
stages:
|
||||||
- test
|
- test
|
||||||
- build
|
- build
|
||||||
|
- pre_push
|
||||||
- push
|
- push
|
||||||
|
|
||||||
test:
|
test:
|
||||||
@@ -13,27 +13,40 @@ test:
|
|||||||
only:
|
only:
|
||||||
- main
|
- main
|
||||||
|
|
||||||
before_script:
|
|
||||||
- apk add --no-cache docker-cli curl jq
|
|
||||||
- |
|
|
||||||
until docker info; do
|
|
||||||
echo "Waiting for Docker to be ready..."
|
|
||||||
sleep 5
|
|
||||||
done
|
|
||||||
|
|
||||||
build:
|
build:
|
||||||
needs:
|
needs:
|
||||||
- test
|
- test
|
||||||
stage: build
|
stage: build
|
||||||
script:
|
script:
|
||||||
- docker info
|
|
||||||
- docker build -t $CI_REGISTRY/$CI_PROJECT_PATH:$CI_COMMIT_REF_SLUG .
|
- docker build -t $CI_REGISTRY/$CI_PROJECT_PATH:$CI_COMMIT_REF_SLUG .
|
||||||
- docker tag $CI_REGISTRY/$CI_PROJECT_PATH:$CI_COMMIT_REF_SLUG $CI_REGISTRY/$CI_PROJECT_PATH:$CI_COMMIT_SHORT_SHA
|
- docker tag $CI_REGISTRY/$CI_PROJECT_PATH:$CI_COMMIT_REF_SLUG $CI_REGISTRY/$CI_PROJECT_PATH:$CI_COMMIT_SHORT_SHA
|
||||||
- docker tag $CI_REGISTRY/$CI_PROJECT_PATH:$CI_COMMIT_REF_SLUG $CI_REGISTRY/$CI_PROJECT_PATH:latest
|
- docker tag $CI_REGISTRY/$CI_PROJECT_PATH:$CI_COMMIT_REF_SLUG $CI_REGISTRY/$CI_PROJECT_PATH:latest
|
||||||
|
only:
|
||||||
|
- main
|
||||||
|
|
||||||
|
pre_push:
|
||||||
|
needs:
|
||||||
|
- build
|
||||||
|
stage: pre_push
|
||||||
|
script:
|
||||||
|
- echo "Running container to test image"
|
||||||
|
- docker run -d --name test_container -p 5050:5050 $CI_REGISTRY/$CI_PROJECT_PATH:$CI_COMMIT_REF_SLUG
|
||||||
|
- |
|
||||||
|
echo "Waiting for the application to start..."
|
||||||
|
sleep 10
|
||||||
|
if curl --fail http://localhost:5050/health; then
|
||||||
|
echo "Healthcheck passed"
|
||||||
|
else
|
||||||
|
echo "Healthcheck failed, stopping push"
|
||||||
|
exit 1
|
||||||
|
fi
|
||||||
|
- docker rm -f test_container
|
||||||
|
only:
|
||||||
|
- main
|
||||||
|
|
||||||
push:
|
push:
|
||||||
needs:
|
needs:
|
||||||
- build
|
- pre_push
|
||||||
stage: push
|
stage: push
|
||||||
script:
|
script:
|
||||||
- |
|
- |
|
||||||
@@ -42,7 +55,6 @@ push:
|
|||||||
|
|
||||||
if [ "$CURRENT_IMAGE_HASH" != "$EXISTING_IMAGE_HASH" ] && [ "$CURRENT_IMAGE_HASH" != "no_digest" ]; 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
|
||||||
docker push $CI_REGISTRY/$CI_PROJECT_PATH:$CI_COMMIT_SHORT_SHA
|
docker push $CI_REGISTRY/$CI_PROJECT_PATH:$CI_COMMIT_SHORT_SHA
|
||||||
@@ -50,21 +62,5 @@ push:
|
|||||||
else
|
else
|
||||||
echo "Image is unchanged, skipping push."
|
echo "Image is unchanged, skipping push."
|
||||||
fi
|
fi
|
||||||
- echo "Running container to test image"
|
|
||||||
- docker run -d --name test_container -p 5050:5050 $CI_REGISTRY/$CI_PROJECT_PATH:$CI_COMMIT_REF_SLUG
|
|
||||||
- |
|
|
||||||
echo "Waiting for the application to start..."
|
|
||||||
sleep 10
|
|
||||||
|
|
||||||
if curl --fail http://localhost:5050/health; then
|
|
||||||
echo "Healthcheck passed"
|
|
||||||
else
|
|
||||||
echo "Healthcheck failed, stopping push"
|
|
||||||
exit 1
|
|
||||||
fi
|
|
||||||
|
|
||||||
- docker rm -f test_container
|
|
||||||
|
|
||||||
only:
|
only:
|
||||||
- main
|
- main
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user