feat(Container Publish): Cleanup Container Publishing tasks

This commit is contained in:
mfeix 2021-10-22 15:56:18 +02:00
parent d7648255c7
commit 378447099b
No known key found for this signature in database
GPG Key ID: 04D016E104A25F03
2 changed files with 55 additions and 28 deletions

View File

@ -0,0 +1,30 @@
include:
- local: 'container-publish.gitlab-ci.yml'
.container-publish-snapshot-rules: &container-publish-snapshot-rules
stage: snapshot
rules:
- if: "$CI_PIPELINE_SOURCE == 'merge_request_event'"
when: never
- if: '$CI_COMMIT_REF_NAME =~ /^feature/'
variables:
IMAGE_TAG: $CI_COMMIT_REF_SLUG
- if: '$CI_COMMIT_REF_NAME =~ /^refactor/'
variables:
IMAGE_TAG: $CI_COMMIT_REF_SLUG
- if: $CI_COMMIT_REF_NAME == $CI_DEFAULT_BRANCH
variables:
IMAGE_TAG: "latest"
- when: never
.publish-image-jib-maven-snapshot:
<<: *container-publish-snapshot-rules
extends: .publish-image-jib-maven
.publish-image-jib-gradle-snapshot:
<<: *container-publish-snapshot-rules
extends: .publish-image-jib-gradle
.publish-image-kaniko-snapshot:
<<: *container-publish-snapshot-rules
extends: .publish-image-kaniko

View File

@ -1,16 +1,26 @@
.publish-image-jib: .container-publish-common: &container-publish-common
image: $MAVEN_IMAGE before_script:
- export PARSED_VERSION=$(echo $IMAGE_TAG | sed -r 's/\+/_/g') # Replace + sign since this is not valid in a docker tag
- echo $PARSED_VERSION
stage: package stage: package
rules: rules:
- if: $CI_COMMIT_TAG - if: $CI_COMMIT_TAG
variables:
IMAGE_TAG: $CI_COMMIT_TAG
.container-publish-common-variables: &container-publish-common-variables
DOCKER_REGISTRY: $CI_REGISTRY_IMAGE
DOCKER_REGISTRY_USER: $CI_REGISTRY_USER
DOCKER_REGISTRY_PASSWORD: $CI_REGISTRY_PASSWORD
.publish-image-jib-maven:
image: $MAVEN_IMAGE
<<: *container-publish-common
variables: variables:
DOCKER_REGISTRY: $CI_REGISTRY_IMAGE <<: *container-publish-common-variables
DOCKER_REGISTRY_USER: $CI_REGISTRY_USER
DOCKER_REGISTRY_PASSWORD: $CI_REGISTRY_PASSWORD
MVN_VERSION: "true" MVN_VERSION: "true"
script: script:
- export PARSED_VERSION=$(echo $CI_COMMIT_TAG | sed -r 's/\+/_/g') # Replace + sign since this is not valid in a docker tag
- echo $PARSED_VERSION
- > - >
if [ "${MVN_VERSION}" == "true" ]; then if [ "${MVN_VERSION}" == "true" ]; then
mvn versions:set -DnewVersion=$PARSED_VERSION -DgenerateBackupPoms=false mvn versions:set -DnewVersion=$PARSED_VERSION -DgenerateBackupPoms=false
@ -23,21 +33,15 @@
.publish-image-jib-gradle: .publish-image-jib-gradle:
image: $GRADLE_IMAGE image: $GRADLE_IMAGE
stage: package <<: *container-publish-common
rules:
- if: $CI_COMMIT_TAG
variables: variables:
DOCKER_REGISTRY: $CI_REGISTRY_IMAGE <<: *container-publish-common-variables
DOCKER_REGISTRY_USER: $CI_REGISTRY_USER GRADLE_EXTRA_ARGS: ""
DOCKER_REGISTRY_PASSWORD: $CI_REGISTRY_PASSWORD
before_script:
- export PARSED_VERSION=$(echo $CI_COMMIT_TAG | sed -r 's/\+/_/g') # Replace + sign since this is not valid in a docker tag
- export IMAGE_NAME=$CI_REGISTRY_IMAGE:$PARSED_VERSION
script: script:
- echo $PARSED_VERSION - echo $PARSED_VERSION
- gradlew jib - ./gradlew assemble jib $GRADLE_EXTRA_ARGS
"-DskipTests" "-DskipTests"
"-Djib.to.image=$DOCKER_REGISTRY:$PARSED_VERSION" "-Djib.to.image=$DOCKER_REGISTRY:$PARSED_VERSION""
"-Djib.to.auth.username=$DOCKER_REGISTRY_USER" "-Djib.to.auth.username=$DOCKER_REGISTRY_USER"
"-Djib.to.auth.password=$DOCKER_REGISTRY_PASSWORD" "-Djib.to.auth.password=$DOCKER_REGISTRY_PASSWORD"
@ -45,20 +49,13 @@
image: image:
name: gcr.io/kaniko-project/executor:v1.7.0-debug name: gcr.io/kaniko-project/executor:v1.7.0-debug
entrypoint: [ "" ] entrypoint: [ "" ]
stage: package <<: *container-publish-common
rules:
- if: $CI_COMMIT_TAG
variables: variables:
DOCKER_REGISTRY: $CI_REGISTRY_IMAGE <<: *container-publish-common-variables
DOCKER_REGISTRY_USER: $CI_REGISTRY_USER
DOCKER_REGISTRY_PASSWORD: $CI_REGISTRY_PASSWORD
PROJECT_DIR: $CI_PROJECT_DIR PROJECT_DIR: $CI_PROJECT_DIR
DOCKERFILE_LOCATION: $CI_PROJECT_DIR/Dockerfile DOCKERFILE_LOCATION: $CI_PROJECT_DIR/Dockerfile
CONTEXT_LOCATION: $CI_PROJECT_DIR CONTEXT_LOCATION: $CI_PROJECT_DIR
before_script:
- export PARSED_VERSION=$(echo $CI_COMMIT_TAG | sed -r 's/\+/_/g') # Replace + sign since this is not valid in a docker tag
- export IMAGE_NAME=$CI_REGISTRY_IMAGE:$PARSED_VERSION
script: script:
- mkdir -p /kaniko/.docker - mkdir -p /kaniko/.docker
- echo "{\"auths\":{\"$DOCKER_REGISTRY\":{\"username\":\"$DOCKER_REGISTRY_USER\",\"password\":\"$DOCKER_REGISTRY_PASSWORD\"}}}" > /kaniko/.docker/config.json - echo "{\"auths\":{\"$DOCKER_REGISTRY\":{\"username\":\"$DOCKER_REGISTRY_USER\",\"password\":\"$DOCKER_REGISTRY_PASSWORD\"}}}" > /kaniko/.docker/config.json
- /kaniko/executor --context $CONTEXT_LOCATION --dockerfile $DOCKERFILE_LOCATION --destination $IMAGE_NAME --skip-tls-verify - /kaniko/executor --context $CONTEXT_LOCATION --dockerfile $DOCKERFILE_LOCATION --destination $CI_REGISTRY_IMAGE:$PARSED_VERSION --skip-tls-verify