From 5ba1998097c4831d02568a9ab6524877e8c585e1 Mon Sep 17 00:00:00 2001 From: Wolfram Gulde Date: Wed, 8 Dec 2021 15:24:55 +0100 Subject: [PATCH 1/7] feat(Version): add versionfile workflow --- container-publish.gitlab-ci.yml | 36 ++++++++++++++++++++++++++------- 1 file changed, 29 insertions(+), 7 deletions(-) diff --git a/container-publish.gitlab-ci.yml b/container-publish.gitlab-ci.yml index 96c45be..f4c47e2 100644 --- a/container-publish.gitlab-ci.yml +++ b/container-publish.gitlab-ci.yml @@ -1,5 +1,16 @@ +.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 + EXTRA_ARGS: "" + USE_VERSIONFILE: false + ARTIFACT: "version" + .container-publish-common: &container-publish-common + variables: + <<: *container-publish-common-variables before_script: + - if [ "$USE_VERSIONFILE" == "true" ]; then IMAGE_TAG=$(cat ./$ARTIFACT); fi - 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 @@ -8,13 +19,6 @@ 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 - EXTRA_ARGS: "" - .publish-image-jib-maven: image: $MAVEN_IMAGE <<: *container-publish-common @@ -60,3 +64,21 @@ - mkdir -p /kaniko/.docker - 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 $CI_REGISTRY_IMAGE:$PARSED_VERSION $EXTRA_ARGS --skip-tls-verify + + + + +.publish-image-kaniko-child: + image: + name: gcr.io/kaniko-project/executor:v1.7.0-debug + entrypoint: [ "" ] + <<: *container-publish-common + variables: + <<: *container-publish-common-variables + PROJECT_DIR: $CI_PROJECT_DIR + DOCKERFILE_LOCATION: $CI_PROJECT_DIR/Dockerfile + CONTEXT_LOCATION: $CI_PROJECT_DIR + script: + - mkdir -p /kaniko/.docker + - 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 $CI_REGISTRY_IMAGE:$PARSED_VERSION $EXTRA_ARGS --skip-tls-verify From 20eaf85c9694b354f9ecff2b6df6d48e1675a1fa Mon Sep 17 00:00:00 2001 From: Wolfram Gulde Date: Wed, 8 Dec 2021 15:30:22 +0100 Subject: [PATCH 2/7] feat(Version): add versionfile workflow 2 --- container-publish.gitlab-ci.yml | 4 ---- 1 file changed, 4 deletions(-) diff --git a/container-publish.gitlab-ci.yml b/container-publish.gitlab-ci.yml index f4c47e2..ff09f9e 100644 --- a/container-publish.gitlab-ci.yml +++ b/container-publish.gitlab-ci.yml @@ -23,7 +23,6 @@ image: $MAVEN_IMAGE <<: *container-publish-common variables: - <<: *container-publish-common-variables MVN_VERSION: "true" script: - > @@ -40,7 +39,6 @@ image: $GRADLE_IMAGE <<: *container-publish-common variables: - <<: *container-publish-common-variables EXTRA_ARGS: $GRADLE_EXTRA_ARGS script: - echo $PARSED_VERSION @@ -56,7 +54,6 @@ entrypoint: [ "" ] <<: *container-publish-common variables: - <<: *container-publish-common-variables PROJECT_DIR: $CI_PROJECT_DIR DOCKERFILE_LOCATION: $CI_PROJECT_DIR/Dockerfile CONTEXT_LOCATION: $CI_PROJECT_DIR @@ -74,7 +71,6 @@ entrypoint: [ "" ] <<: *container-publish-common variables: - <<: *container-publish-common-variables PROJECT_DIR: $CI_PROJECT_DIR DOCKERFILE_LOCATION: $CI_PROJECT_DIR/Dockerfile CONTEXT_LOCATION: $CI_PROJECT_DIR From dca8c92cedda273a019960f58a2e95b0a2624093 Mon Sep 17 00:00:00 2001 From: Wolfram Gulde Date: Wed, 8 Dec 2021 16:14:56 +0100 Subject: [PATCH 3/7] feat(Version): add versionfile workflow 3 --- container-publish.gitlab-ci.yml | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/container-publish.gitlab-ci.yml b/container-publish.gitlab-ci.yml index ff09f9e..7d36788 100644 --- a/container-publish.gitlab-ci.yml +++ b/container-publish.gitlab-ci.yml @@ -10,7 +10,9 @@ variables: <<: *container-publish-common-variables before_script: - - if [ "$USE_VERSIONFILE" == "true" ]; then IMAGE_TAG=$(cat ./$ARTIFACT); fi + - pwd + - ls -l + - if [ "$USE_VERSIONFILE" == "true" ]; then IMAGE_TAG=$(cat ./"$ARTIFACT"); fi - 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 From 08155045c97b56969bb0dfb2f4127811123625d5 Mon Sep 17 00:00:00 2001 From: Wolfram Gulde Date: Wed, 8 Dec 2021 16:25:48 +0100 Subject: [PATCH 4/7] feat(Version): add versionfile workflow 4 --- container-publish.gitlab-ci.yml | 3 +++ 1 file changed, 3 insertions(+) diff --git a/container-publish.gitlab-ci.yml b/container-publish.gitlab-ci.yml index 7d36788..6f6d1da 100644 --- a/container-publish.gitlab-ci.yml +++ b/container-publish.gitlab-ci.yml @@ -12,6 +12,9 @@ before_script: - pwd - ls -l + - echo $ARTIFACT + - export IMAGE_TAG=$(cat ./"$ARTIFACT") + - echo $IMAGE_TAG - if [ "$USE_VERSIONFILE" == "true" ]; then IMAGE_TAG=$(cat ./"$ARTIFACT"); fi - export PARSED_VERSION=$(echo $IMAGE_TAG | sed -r 's/\+/_/g') # Replace + sign since this is not valid in a docker tag - echo $PARSED_VERSION From 9450cf40b3e21a8f1e8f6020f96f1173e963d864 Mon Sep 17 00:00:00 2001 From: Wolfram Gulde Date: Wed, 8 Dec 2021 16:40:34 +0100 Subject: [PATCH 5/7] feat(Version): add versionfile workflow 5 --- container-publish.gitlab-ci.yml | 24 ++++-------------------- 1 file changed, 4 insertions(+), 20 deletions(-) diff --git a/container-publish.gitlab-ci.yml b/container-publish.gitlab-ci.yml index 6f6d1da..68ff82a 100644 --- a/container-publish.gitlab-ci.yml +++ b/container-publish.gitlab-ci.yml @@ -7,8 +7,6 @@ ARTIFACT: "version" .container-publish-common: &container-publish-common - variables: - <<: *container-publish-common-variables before_script: - pwd - ls -l @@ -28,6 +26,7 @@ image: $MAVEN_IMAGE <<: *container-publish-common variables: + <<: *container-publish-common-variables MVN_VERSION: "true" script: - > @@ -44,8 +43,9 @@ image: $GRADLE_IMAGE <<: *container-publish-common variables: + <<: *container-publish-common-variables EXTRA_ARGS: $GRADLE_EXTRA_ARGS - script: + script:s - echo $PARSED_VERSION - ./gradlew assemble jib $EXTRA_ARGS "-DskipTests" @@ -59,23 +59,7 @@ entrypoint: [ "" ] <<: *container-publish-common variables: - PROJECT_DIR: $CI_PROJECT_DIR - DOCKERFILE_LOCATION: $CI_PROJECT_DIR/Dockerfile - CONTEXT_LOCATION: $CI_PROJECT_DIR - script: - - mkdir -p /kaniko/.docker - - 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 $CI_REGISTRY_IMAGE:$PARSED_VERSION $EXTRA_ARGS --skip-tls-verify - - - - -.publish-image-kaniko-child: - image: - name: gcr.io/kaniko-project/executor:v1.7.0-debug - entrypoint: [ "" ] - <<: *container-publish-common - variables: + <<: *container-publish-common-variables PROJECT_DIR: $CI_PROJECT_DIR DOCKERFILE_LOCATION: $CI_PROJECT_DIR/Dockerfile CONTEXT_LOCATION: $CI_PROJECT_DIR From bf9b3e1d83ed30b6924d550ac44872625c3d217e Mon Sep 17 00:00:00 2001 From: Wolfram Gulde Date: Wed, 8 Dec 2021 17:27:45 +0100 Subject: [PATCH 6/7] feat(Version): add versionfile workflow 6 --- container-publish.gitlab-ci.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/container-publish.gitlab-ci.yml b/container-publish.gitlab-ci.yml index 68ff82a..40e5037 100644 --- a/container-publish.gitlab-ci.yml +++ b/container-publish.gitlab-ci.yml @@ -45,7 +45,7 @@ variables: <<: *container-publish-common-variables EXTRA_ARGS: $GRADLE_EXTRA_ARGS - script:s + script: - echo $PARSED_VERSION - ./gradlew assemble jib $EXTRA_ARGS "-DskipTests" From f60022986189e57f4d97254c8b0193cee99e4af3 Mon Sep 17 00:00:00 2001 From: Wolfram Gulde Date: Thu, 9 Dec 2021 17:36:50 +0100 Subject: [PATCH 7/7] feat(Version): add docs and run on default branch --- container-publish.gitlab-ci.yml | 9 ++++----- documentation/chapters/templates/container-publish.adoc | 2 ++ 2 files changed, 6 insertions(+), 5 deletions(-) diff --git a/container-publish.gitlab-ci.yml b/container-publish.gitlab-ci.yml index 40e5037..9886d5b 100644 --- a/container-publish.gitlab-ci.yml +++ b/container-publish.gitlab-ci.yml @@ -8,11 +8,6 @@ .container-publish-common: &container-publish-common before_script: - - pwd - - ls -l - - echo $ARTIFACT - - export IMAGE_TAG=$(cat ./"$ARTIFACT") - - echo $IMAGE_TAG - if [ "$USE_VERSIONFILE" == "true" ]; then IMAGE_TAG=$(cat ./"$ARTIFACT"); fi - export PARSED_VERSION=$(echo $IMAGE_TAG | sed -r 's/\+/_/g') # Replace + sign since this is not valid in a docker tag - echo $PARSED_VERSION @@ -21,6 +16,10 @@ - if: $CI_COMMIT_TAG variables: IMAGE_TAG: $CI_COMMIT_TAG + - if: $CI_COMMIT_REF_NAME == $CI_DEFAULT_BRANCH + variables: + USE_VERSIONFILE: true + - when: never .publish-image-jib-maven: image: $MAVEN_IMAGE diff --git a/documentation/chapters/templates/container-publish.adoc b/documentation/chapters/templates/container-publish.adoc index e0b5ced..9824c9e 100644 --- a/documentation/chapters/templates/container-publish.adoc +++ b/documentation/chapters/templates/container-publish.adoc @@ -17,6 +17,8 @@ Falls das Projekt aus mehreren Poms besteht, kann `before_script:` benutzt werde |DOCKER_REGISTRY_USER | Definiert den User der benutzt werden soll | $CI_REGISTRY_USER |DOCKER_REGISTRY_PASSWORD | Definiert das Passwort des Benutzers | $CI_REGISTRY_PASSWORD |EXTRA_ARGS | Weitere Argumente die an an den jeweiligen Job gegeben werden sollen. | "" +|USE_VERSIONFILE | Wenn true, dann wird zur Versionierung das ./version file aus dem set-version tool verwendet | "false" +|ARTIFACT | Der Name des Versionfiles aus dem set-version tool | "version" |=== .sonar-template