diff --git a/.gitlab-ci.yml b/.gitlab-ci.yml new file mode 100644 index 0000000000000000000000000000000000000000..122a31b29720d6213907625980a25b19f2ee58c2 --- /dev/null +++ b/.gitlab-ci.yml @@ -0,0 +1,58 @@ +image: maven:3.9.9-eclipse-temurin-21-alpine + +stages: + - check_version + - build + - publish + - rollout + - post_checks + - on_failure + +variables: + DOCKER_HOST: "tcp://docker:2375" + DOCKER_TLS_CERTDIR: "" + DOCKER_DRIVER: overlay2 + DOCKER_REGISTRY: "docker.ozg-sh.de" + SERVICE_NAME: "aggregation-manager" + DOCKER_REGISTRY_IMAGE: "$DOCKER_REGISTRY/$SERVICE_NAME" + PYTHON_VENV_PATH: "/usr/local/bin/python3/venv" + SH_SUCCESS_STATUS_CODE: 0 + +default: + before_script: + - ./gitlab/prepare.sh + +check_version: + stage: check_version + script: + - $SCRIPT_DIR/check_version.sh + +build: + stage: build + services: + - name: docker:dind + command: ["--tls=false"] + script: + - run_mvn.sh clean install -Dmaven.wagon.http.retryHandler.count=3 -DelasticTests.disabled=true + +deploy: + stage: publish + script: + - jar_version=$(run_mvn.sh help:evaluate -Dexpression=project.version -q -DforceStdout | sed "s/SNAPSHOT/${CI_COMMIT_REF_NAME:0:20}-SNAPSHOT/") + - jar_license_version=$(run_mvn.sh help:evaluate -Dexpression=project.version -q -DforceStdout -pl ozgcloud-common-license | sed "s/SNAPSHOT/${CI_COMMIT_REF_NAME:0:20}-SNAPSHOT/") + - run_mvn.sh versions:set -DnewVersion=$jar_version -pl . + - run_mvn.sh versions:set -DnewVersion=$jar_version -pl ozgcloud-common-parent + - run_mvn.sh versions:set -DnewVersion=$jar_license_version -pl ozgcloud-common-license + - run_mvn.sh deploy -DskipTests -Dmaven.wagon.http.retryHandler.count=3 + +deploy_sbom_to_dependency_track: + stage: post_checks + script: + - $SCRIPT_DIR/deploy_sbom_to_dependency_track.sh + +sonar_checks: + stage: post_checks + only: + - main + script: + - run_mvn.sh sonar:sonar -Dsonar.login=$SONARQUBE_TOKEN diff --git a/gitlab/configure_git.sh b/gitlab/configure_git.sh new file mode 100755 index 0000000000000000000000000000000000000000..fe0738abbe84c7c5f36f3a8ab1bf1cdcc40a786e --- /dev/null +++ b/gitlab/configure_git.sh @@ -0,0 +1,8 @@ +#!/usr/bin/env bash + +## install prerequisites +apk add --no-cache git + +## configure git +git config --global user.email "ozgcloud@mgm-tp.com" +git config --global user.name "OZGCloud" \ No newline at end of file diff --git a/gitlab/prepare.sh b/gitlab/prepare.sh new file mode 100755 index 0000000000000000000000000000000000000000..dd7ab33dd7011e8c6fff5d41ff17ab03d5bc5e84 --- /dev/null +++ b/gitlab/prepare.sh @@ -0,0 +1,12 @@ +#!/usr/bin/env bash +service_name="$1" +. ./gitlab/configure_git.sh +# git clone --depth 1 https://$service_name:${GIT_ACCESS_TOKEN}@code.schleswig-holstein.de/ozg-cloud/devops/build-management.git ## TODO: use this when MR is merged +#### TODO: remove code block when MR is merged +git clone https://$service_name:${GIT_ACCESS_TOKEN}@code.schleswig-holstein.de/ozg-cloud/devops/build-management.git +cd build-management +git checkout add-pipeline-scripts +cd .. +#### +. ./build-management/set_up_scripts.sh +. $SCRIPT_DIR/configure_maven.sh \ No newline at end of file