Simplify gitlab-ci

This commit is contained in:
2025-04-17 10:25:41 +02:00
parent 2c812e2225
commit 180132dcfe

View File

@@ -1,27 +1,14 @@
---
default:
image: docker:latest
services:
- docker:dind
before_script:
- echo "$CI_REGISTRY_PASSWORD" | docker login $CI_REGISTRY -u $CI_REGISTRY_USER --password-stdin
stages:
- linting
- build
- release
variables:
EXECUTABLE_NAME: dockup
IMAGE_NAME: ${CI_REGISTRY_IMAGE}
SHORT_SHA: ${CI_COMMIT_SHORT_SHA}
DATE_TAG: $(date +%Y%m%d-%H%M%S)
SEMVER: "1.2.3"
linting:
stage: linting
image: python:latest
before_script: []
script:
- pip install -r requirements.txt
- pip install isort black flake8 pylint
@@ -31,40 +18,13 @@ linting:
# - pylint ${EXECUTABLE_NAME} --disable=C0111
build_image:
stage: build
script:
- docker build -t $IMAGE_NAME:$SHORT_SHA .
- docker tag $IMAGE_NAME:$SHORT_SHA $IMAGE_NAME:$DATE_TAG
# For main branch builds
- if [ "$CI_COMMIT_BRANCH" = "main" ]; then
docker tag $IMAGE_NAME:$SHORT_SHA $IMAGE_NAME:latest;
docker tag $IMAGE_NAME:$SHORT_SHA $IMAGE_NAME:stable;
fi
# For release tags (v1.2.3)
- if [[ "$CI_COMMIT_TAG" =~ ^v[0-9]+\.[0-9]+\.[0-9]+$ ]]; then
SEMVER="${CI_COMMIT_TAG#v}";
docker tag $IMAGE_NAME:$SHORT_SHA $IMAGE_NAME:$SEMVER;
docker tag $IMAGE_NAME:$SHORT_SHA $IMAGE_NAME:${SEMVER%.*};
docker tag $IMAGE_NAME:$SHORT_SHA $IMAGE_NAME:${SEMVER%%.*};
fi
publish_image:
image: docker:latest
services:
- docker:dind
stage: release
needs: [build_image]
script:
- docker push $IMAGE_NAME:$SHORT_SHA
- docker push $IMAGE_NAME:$DATE_TAG
- if [ "$CI_COMMIT_BRANCH" = "main" ]; then
docker push $IMAGE_NAME:latest;
docker push $IMAGE_NAME:stable;
fi
- if [[ "$CI_COMMIT_TAG" =~ ^v[0-9]+\.[0-9]+\.[0-9]+$ ]]; then
docker push $IMAGE_NAME:$SEMVER;
docker push $IMAGE_NAME:${SEMVER%.*};
docker push $IMAGE_NAME:${SEMVER%%.*};
fi
- echo "$CI_REGISTRY_PASSWORD" | docker login $CI_REGISTRY -u $CI_REGISTRY_USER --password-stdin
- export TAG="${CI_COMMIT_TAG:-latest}" && echo $TAG
- docker build -t ${IMAGE_NAME}:${TAG} .
- docker push ${IMAGE_NAME}:${TAG}
...