.container-publish-common: &container-publish-common 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 rules: - 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: <<: *container-publish-common-variables MVN_VERSION: "true" script: - > if [ "${MVN_VERSION}" == "true" ]; then mvn versions:set -DnewVersion=$PARSED_VERSION -DgenerateBackupPoms=false fi - mvn $MAVEN_CLI_OPTS compile jib:build "-DskipTests" "-Djib.to.image=$DOCKER_REGISTRY:$PARSED_VERSION" "-Djib.to.auth.username=$DOCKER_REGISTRY_USER" "-Djib.to.auth.password=$DOCKER_REGISTRY_PASSWORD" .publish-image-jib-gradle: image: $GRADLE_IMAGE <<: *container-publish-common variables: <<: *container-publish-common-variables GRADLE_EXTRA_ARGS: "" script: - echo $PARSED_VERSION - ./gradlew assemble jib $GRADLE_EXTRA_ARGS "-DskipTests" "-Djib.to.image=$DOCKER_REGISTRY:$PARSED_VERSION"" "-Djib.to.auth.username=$DOCKER_REGISTRY_USER" "-Djib.to.auth.password=$DOCKER_REGISTRY_PASSWORD" .publish-image-kaniko: 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 --skip-tls-verify