CI: Build docker image also on tag push
Change-Id: Ifeaf8d52a41a18ccd4192fc0378206e8c85a26e2
diff --git a/.gitlab-ci.yml b/.gitlab-ci.yml
index b145807..c808099 100644
--- a/.gitlab-ci.yml
+++ b/.gitlab-ci.yml
@@ -37,7 +37,7 @@
- pushes
- merge_requests
-# Build Docker image stage - available on all branches but only runs manually
+# Build Docker image stage - runs automatically for tags and is manually triggerable otherwise
build-docker:
stage: build
image: docker:24.0.5
@@ -46,18 +46,30 @@
before_script:
- apk add --no-cache xz
script:
- - export IMAGE_TAG=${CI_COMMIT_TAG:-latest}
- - export ARTIFACT_NAME=kalamar-plugin-export-${CI_COMMIT_TAG:-$CI_COMMIT_SHORT_SHA}.tar.xz
- - docker build -t $DOCKER_IMAGE_NAME:$IMAGE_TAG .
- - docker build -t $DOCKER_IMAGE_NAME:latest .
- - docker save $DOCKER_IMAGE_NAME:$IMAGE_TAG | xz -c > $ARTIFACT_NAME
- - ls -lh $ARTIFACT_NAME
+ - |
+ if [ -n "$CI_COMMIT_TAG" ]; then
+ export BUILD_SUFFIX="$CI_COMMIT_TAG"
+ export VERSIONED_IMAGE_NAME="$DOCKER_IMAGE_NAME-$BUILD_SUFFIX"
+ export ARTIFACT_NAME="kalamar-plugin-export-$BUILD_SUFFIX.tar.xz"
+ docker build -t "$DOCKER_IMAGE_NAME:$BUILD_SUFFIX" -t "$VERSIONED_IMAGE_NAME:$BUILD_SUFFIX" -t "$DOCKER_IMAGE_NAME:latest" .
+ docker save "$DOCKER_IMAGE_NAME:$BUILD_SUFFIX" "$VERSIONED_IMAGE_NAME:$BUILD_SUFFIX" "$DOCKER_IMAGE_NAME:latest" | xz -c > "$ARTIFACT_NAME"
+ else
+ export BUILD_SUFFIX="$CI_COMMIT_SHORT_SHA"
+ export VERSIONED_IMAGE_NAME="$DOCKER_IMAGE_NAME-$BUILD_SUFFIX"
+ export ARTIFACT_NAME="kalamar-plugin-export-$BUILD_SUFFIX.tar.xz"
+ docker build -t "$DOCKER_IMAGE_NAME:$BUILD_SUFFIX" -t "$VERSIONED_IMAGE_NAME:$BUILD_SUFFIX" .
+ docker save "$DOCKER_IMAGE_NAME:$BUILD_SUFFIX" "$VERSIONED_IMAGE_NAME:$BUILD_SUFFIX" | xz -c > "$ARTIFACT_NAME"
+ fi
+ - ls -lh "$ARTIFACT_NAME"
artifacts:
- name: "$ARTIFACT_NAME"
+ name: "kalamar-plugin-export-$BUILD_SUFFIX.tar.xz"
paths:
- "*.tar.xz"
expire_in: 30 days
- when: manual
+ rules:
+ - if: "$CI_COMMIT_TAG"
+ when: on_success
+ - when: manual
allow_failure: false
# Security scan stage (optional)