diff --git a/.gitlab-ci.yml b/.gitlab-ci.yml index 898e0eaf2f744e9921d74193b7ef1973923c3c56..a6d38e74b8452ca7c78195b3aa34bbd0b128cc83 100644 --- a/.gitlab-ci.yml +++ b/.gitlab-ci.yml @@ -10,8 +10,8 @@ workflow: - when: always variables: - MAVEN_OPTS: "-Xmx500m -XX:GCLockerRetryAllocationCount=100 -Dorg.slf4j.simpleLogger.log.org.apache.maven.cli.transfer.Slf4jMavenTransferListener=WARN" - MAVEN_CLI_OPTS: "--batch-mode -DinstallAtEnd=true -DdeployAtEnd=true -DskipDeployBigArtefact=true -s $CI_PROJECT_DIR/ci_settings.xml" + MAVEN_OPTS: "-Xmx500m -XX:+UseSerialGC -Dorg.slf4j.simpleLogger.log.org.apache.maven.cli.transfer.Slf4jMavenTransferListener=WARN" + MAVEN_CLI_OPTS: "--batch-mode -DskipDeployBigArtefact=true -s $CI_PROJECT_DIR/ci_settings.xml" stages: - build @@ -30,6 +30,8 @@ maven-build: rules: - if: $OPERATION != null when: never + - if: $CI_COMMIT_TAG != null + when: never - if: $CI_COMMIT_REF_NAME != $CI_DEFAULT_BRANCH variables: MAVEN_GOAL: "install" @@ -42,19 +44,25 @@ maven-build: image: registry.opencode.de/diplanung/ozgxplanung/mvn-build-image:latest script: - mvn package -Dxplan-tests.maven.deploy.skip=true -Pdocker,skipAll -pl $mvnProjects -am + - ci/readEnvPropsForKanikoBuilds.sh > build.env - find . -name docker-build.tar | xargs gzip - set -o pipefail; find . -name docker-build.tar.gz | grep . | xargs du -h rules: - if: $CI_PIPELINE_SOURCE == 'schedule' when: never + - if: $CI_COMMIT_TAG != null + when: on_success - if: $CI_COMMIT_REF_NAME != $CI_DEFAULT_BRANCH when: never - when: on_success artifacts: expire_in: 1 hour + reports: + dotenv: build.env variables: UPSTREAM_REF: $CI_COMMIT_REF_NAME + maven-prepare-docker-contexts-apis-and-inspire-plu: extends: .maven-prepare-docker-contexts variables: @@ -96,25 +104,15 @@ maven-prepare-docker-contexts-others: include: ci/all-kaniko-builds.gitlab-ci.yml -maven-release: +maven-deploy-release: image: registry.opencode.de/diplanung/ozgxplanung/mvn-build-image:latest stage: build:jvm rules: - - if: $CI_COMMIT_REF_NAME != $CI_DEFAULT_BRANCH - when: never - if: $OPERATION != null when: never - - if: $CI_COMMIT_TAG - before_script: - - mkdir -p ~/.ssh/ - - cp $DEPLOY_PRIVATE_KEY ~/.ssh/id_rsa && chmod 600 ~/.ssh/id_rsa - - cp $KNOWN_HOSTS ~/.ssh/known_hosts - - apt-get update && apt-get install -y git - - git config --global user.email "noreply@gitlab.opencode.de" - - git config --global user.name "xplanung GitLab CI" - - git checkout -B "$CI_COMMIT_REF_NAME" + - if: $CI_COMMIT_TAG != null script: - - mvn release:prepare release:perform $MAVEN_CLI_OPTS -DscmReleaseCommitComment="release @{releaseLabel}" -DtagNameFormat="v@{project.version}" + - mvn $MAVEN_CLI_OPTS deploy -PskipAll -Dxplan-tests.maven.deploy.skip=true gitlab-release: stage: deploy @@ -122,9 +120,9 @@ gitlab-release: rules: - if: $OPERATION != null when: never - - if: $CI_COMMIT_TAG + - if: $CI_COMMIT_TAG != null script: - - echo "Running the release job for $CI_COMMIT_TAG" + - echo "Running job gitlab-release for $CI_COMMIT_TAG" release: tag_name: $CI_COMMIT_TAG name: 'Release $CI_COMMIT_TAG' diff --git a/ci/all-kaniko-builds.gitlab-ci.yml b/ci/all-kaniko-builds.gitlab-ci.yml index 959dd308c367fae55177ae6214c287b2d037bcc4..0a6c703acb2182e446fdd659f5f614dc00970e15 100644 --- a/ci/all-kaniko-builds.gitlab-ci.yml +++ b/ci/all-kaniko-builds.gitlab-ci.yml @@ -5,15 +5,17 @@ name: gcr.io/kaniko-project/executor:v1.9.0-debug entrypoint: [""] script: - - /kaniko/executor --context=tar://${CI_PROJECT_DIR}/$tarGzFile --destination=$destination:$dockerTag + - /kaniko/executor --context=tar://${CI_PROJECT_DIR}/$tarGzFile --destination=$destination:$xplanboxVersion --build-arg="BUILD_DATE='$(date --utc +'%Y-%m-%d %H:%M:%SZ')'" --build-arg="DOCKER_IMAGE_NAME=$dockerImageName" --build-arg="GIT_REVISION=${CI_COMMIT_SHA}" --build-arg="XPLANBOX_IMAGE_NAME_PREFIX=${CI_REGISTRY_IMAGE}/xplanbox" - --build-arg="XPLANBOX_VERSION=${dockerTag}" + --build-arg="XPLANBOX_VERSION=${xplanboxVersion}" rules: - if: $CI_PIPELINE_SOURCE == 'schedule' when: never + - if: $CI_COMMIT_TAG != null + when: on_success - if: $CI_COMMIT_REF_NAME != $CI_DEFAULT_BRANCH when: never - when: on_success @@ -30,6 +32,7 @@ kaniko:xplan-cli-docker: tarGzFile: xplan-cli/xplan-cli-docker/target/docker/xplanbox/xplan-cli/tmp/docker-build.tar.gz needs: - maven-prepare-docker-contexts-cli + - kaniko:xplan-docker-volume-init kaniko:xplan-db-updater: extends: .kaniko:build diff --git a/ci/readEnvPropsForKanikoBuilds.sh b/ci/readEnvPropsForKanikoBuilds.sh new file mode 100755 index 0000000000000000000000000000000000000000..cb003d077cb032e6367d889b898779c0b0882c47 --- /dev/null +++ b/ci/readEnvPropsForKanikoBuilds.sh @@ -0,0 +1,7 @@ +#!/usr/bin/env bash +# to be run in a folder with pom.xml + +xplanboxVersion=$(mvn -N help:evaluate -Dexpression=project.version -q -DforceStdout) + +echo -n "xplanboxVersion=$([[ $xplanboxVersion == *SNAPSHOT ]] && echo 'latest' || echo $xplanboxVersion) +" \ No newline at end of file