From d651f61c8d8c289e1b9bb682dbd486547f8b596b Mon Sep 17 00:00:00 2001 From: Felix Reichenbach <felix.reichenbach@mgm-tp.com> Date: Wed, 5 Mar 2025 15:39:39 +0100 Subject: [PATCH] set up gitlab pipeline --- .gitlab-ci.yml | 58 +++++++++++++++++++++++++++++++++++++++++ gitlab/configure_git.sh | 8 ++++++ gitlab/prepare.sh | 12 +++++++++ 3 files changed, 78 insertions(+) create mode 100644 .gitlab-ci.yml create mode 100755 gitlab/configure_git.sh create mode 100755 gitlab/prepare.sh diff --git a/.gitlab-ci.yml b/.gitlab-ci.yml new file mode 100644 index 0000000..122a31b --- /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 0000000..fe0738a --- /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 0000000..dd7ab33 --- /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 -- GitLab