86 lines
3.0 KiB
YAML
86 lines
3.0 KiB
YAML
.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:
|
|
- 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
|
|
stage: package
|
|
rules:
|
|
- if: $CI_COMMIT_TAG
|
|
variables:
|
|
IMAGE_TAG: $CI_COMMIT_TAG
|
|
|
|
.publish-image-jib-maven:
|
|
image: $MAVEN_IMAGE
|
|
<<: *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 $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-jib-gradle:
|
|
image: $GRADLE_IMAGE
|
|
<<: *container-publish-common
|
|
variables:
|
|
EXTRA_ARGS: $GRADLE_EXTRA_ARGS
|
|
script:
|
|
- echo $PARSED_VERSION
|
|
- ./gradlew assemble jib $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:
|
|
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:
|
|
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
|