Skip to content
Snippets Groups Projects

Draft: Ozg 8085 ci components poc

Open Lukas Malte Monnerjahn requested to merge OZG-8085-ci-components-poc into main
+ 29
91
image: maven:3.9.9-eclipse-temurin-21-alpine
variables:
MAVEN_DEPLOY_CLI_OPTS: "--no-transfer-progress -DskipTests"
MAVEN_CLI_OPTS: >-
-s .m2/ci_settings.xml --batch-mode
-Dmaven.plugin.validation=brief
DOCKER_HOST: tcp://docker:2375
DOCKER_TLS_CERTDIR: ""
DOCKER_DRIVER: overlay2
NEXUS_IMAGE_REGISTRY_URL: docker.ozg-sh.de
services:
- docker:24.0.5-dind
cache:
paths:
- .m2/repository/
- target/
stages:
- build
- test
- publish
package:
stage: build
script:
- mvn clean package -DskipTests=true $MAVEN_CLI_OPTS
artifacts:
paths:
- target/*.jar
test:
stage: test
script:
- mvn test $MAVEN_CLI_OPTS
include:
# Maven Build, Test and Verify
- component: $CI_SERVER_FQDN/ozg-cloud/devops/ci-components/maven_build@main
inputs:
maven_cli_options: $MAVEN_CLI_OPTS
build_stage: build
test_stage: test
# Maven Deploy for MR, Snapshot and Release to GitLab
- component: $CI_SERVER_FQDN/ozg-cloud/devops/ci-components/maven_deploy@main
inputs:
job_prefix: gitlab
stage: publish
maven_cli_options: >-
-s .m2/ci_settings.xml --batch-mode
-Dmaven.plugin.validation=brief
maven_profile: "-Pgitlab-deploy"
image_registry: $CI_REGISTRY_IMAGE
# Maven Deploy for MR, Snapshot and Release to Nexus
- component: $CI_SERVER_FQDN/ozg-cloud/devops/ci-components/maven_deploy@main
inputs:
job_prefix: nexus
stage: publish
maven_cli_options: >-
-s .m2/ci_settings.xml --batch-mode
-Dmaven.plugin.validation=brief
maven_profile: "-Pnexus-deploy"
image_registry: $NEXUS_IMAGE_REGISTRY_URL
append_artifact_id_to_registry: true
.helm:
before_script:
@@ -50,42 +61,11 @@ test-helm:
script:
- sh run_helm_test.sh
verify:
stage: test
script:
- mvn verify $MAVEN_CLI_OPTS
.get-version:
before_script:
- export PROJECT_VERSION=$(mvn help:evaluate -Dexpression=project.version -q -DforceStdout $MAVEN_CLI_OPTS | cut -d'-' -f1)
- export PROJECT_ARTIFACTID=$(mvn help:evaluate -Dexpression=project.artifactId -q -DforceStdout $MAVEN_CLI_OPTS)
- export NEXUS_IMAGE_PREFIX="docker.ozg-sh.de/${PROJECT_ARTIFACTID}"
- export MERGE_REQUEST_TAG="${PROJECT_VERSION}-MR-${CI_MERGE_REQUEST_IID}"
- export SNAPSHOT_TAG="${PROJECT_VERSION}-${CI_COMMIT_BRANCH}"
# Merge request jobs
push-merge-request-image-gitlab:
stage: publish
extends: .get-version
script:
- export PRIMARY_IMAGE_TAG=${MERGE_REQUEST_TAG}
- export IMAGE_TAGS="${CI_REGISTRY_IMAGE}:${MERGE_REQUEST_TAG},${CI_REGISTRY_IMAGE}:${MERGE_REQUEST_TAG}-${CI_COMMIT_SHORT_SHA}"
- mvn deploy -Pgitlab-deploy $MAVEN_DEPLOY_CLI_OPTS $MAVEN_CLI_OPTS
rules:
- if: $CI_PIPELINE_SOURCE == 'merge_request_event'
when: manual
push-merge-request-image-nexus:
stage: publish
extends: .get-version
script:
- export PRIMARY_IMAGE_TAG=${MERGE_REQUEST_TAG}
- export IMAGE_TAGS="${NEXUS_IMAGE_PREFIX}:${MERGE_REQUEST_TAG},${NEXUS_IMAGE_PREFIX}:${MERGE_REQUEST_TAG}-${CI_COMMIT_SHORT_SHA}"
- mvn deploy -Pnexus-deploy $MAVEN_DEPLOY_CLI_OPTS $MAVEN_CLI_OPTS
rules:
- if: $CI_PIPELINE_SOURCE == 'merge_request_event'
when: manual
push-merge-request-helm-nexus:
stage: publish
variables:
@@ -118,26 +98,6 @@ push-keystore-assembler-image-nexus:
- if: $CI_PIPELINE_SOURCE == 'merge_request_event'
# Snapshot jobs
push-snapshot-image-gitlab:
stage: publish
extends: .get-version
script:
- export PRIMARY_IMAGE_TAG=${SNAPSHOT_TAG}
- export IMAGE_TAGS="${CI_REGISTRY_IMAGE}:${SNAPSHOT_TAG},${CI_REGISTRY_IMAGE}:${SNAPSHOT_TAG}-${CI_COMMIT_SHORT_SHA},${CI_REGISTRY_IMAGE}:snapshot-latest"
- mvn deploy -Pgitlab-deploy $MAVEN_DEPLOY_CLI_OPTS $MAVEN_CLI_OPTS
only:
- main
push-snapshot-image-nexus:
stage: publish
extends: .get-version
script:
- export PRIMARY_IMAGE_TAG=${SNAPSHOT_TAG}
- export IMAGE_TAGS="${NEXUS_IMAGE_PREFIX}:${SNAPSHOT_TAG},${NEXUS_IMAGE_PREFIX}:${SNAPSHOT_TAG}-${CI_COMMIT_SHORT_SHA},${NEXUS_IMAGE_PREFIX}:snapshot-latest"
- mvn deploy -Pnexus-deploy $MAVEN_DEPLOY_CLI_OPTS $MAVEN_CLI_OPTS
only:
- main
push-snapshot-helm-nexus:
stage: publish
variables:
@@ -157,28 +117,6 @@ push-snapshot-helm-nexus:
- "*.tgz"
# Release jobs
push-release-image-gitlab:
stage: publish
extends: .get-version
script:
- mvn versions:set -DnewVersion=${CI_COMMIT_TAG} $MAVEN_CLI_OPTS
- export PRIMARY_IMAGE_TAG=${CI_COMMIT_TAG}
- export IMAGE_TAGS="${CI_REGISTRY_IMAGE}:${CI_COMMIT_TAG},${CI_REGISTRY_IMAGE}:${CI_COMMIT_TAG}-release,${CI_REGISTRY_IMAGE}:latest"
- mvn deploy -Pgitlab-deploy $MAVEN_DEPLOY_CLI_OPTS $MAVEN_CLI_OPTS
rules:
- if: $CI_COMMIT_TAG
push-release-image-nexus:
stage: publish
extends: .get-version
script:
- mvn versions:set -DnewVersion=${CI_COMMIT_TAG} $MAVEN_CLI_OPTS
- export PRIMARY_IMAGE_TAG=${CI_COMMIT_TAG}
- export IMAGE_TAGS="${NEXUS_IMAGE_PREFIX}:${CI_COMMIT_TAG},${NEXUS_IMAGE_PREFIX}:${CI_COMMIT_TAG}-release,${NEXUS_IMAGE_PREFIX}:latest"
- mvn deploy -Pnexus-deploy $MAVEN_DEPLOY_CLI_OPTS $MAVEN_CLI_OPTS
rules:
- if: $CI_COMMIT_TAG
push-release-helm-nexus:
stage: publish
variables:
Loading