diff --git a/.gitlab-ci.yml b/.gitlab-ci.yml
new file mode 100644
index 000000000..da80a492c
--- /dev/null
+++ b/.gitlab-ci.yml
@@ -0,0 +1,6 @@
+variables:
+ SONAR_PROJECT_KEY: 'RED_persistence-service'
+include:
+ - project: 'gitlab/gitlab'
+ ref: 'main'
+ file: 'ci-templates/maven_java.yml'
diff --git a/bamboo-specs/pom.xml b/bamboo-specs/pom.xml
deleted file mode 100644
index d35f6765d..000000000
--- a/bamboo-specs/pom.xml
+++ /dev/null
@@ -1,37 +0,0 @@
-
- 4.0.0
-
-
- com.atlassian.bamboo
- bamboo-specs-parent
- 8.1.3
-
-
-
- bamboo-specs
- 1.0.0-SNAPSHOT
- jar
-
-
-
- com.atlassian.bamboo
- bamboo-specs-api
-
-
- com.atlassian.bamboo
- bamboo-specs
-
-
-
-
- junit
- junit
- test
-
-
-
-
-
-
-
diff --git a/bamboo-specs/src/main/java/buildjob/PlanSpec.java b/bamboo-specs/src/main/java/buildjob/PlanSpec.java
deleted file mode 100644
index 122953354..000000000
--- a/bamboo-specs/src/main/java/buildjob/PlanSpec.java
+++ /dev/null
@@ -1,126 +0,0 @@
-package buildjob;
-
-import static com.atlassian.bamboo.specs.builders.task.TestParserTask.createJUnitParserTask;
-
-import java.time.LocalTime;
-
-import com.atlassian.bamboo.specs.api.BambooSpec;
-import com.atlassian.bamboo.specs.api.builders.BambooKey;
-import com.atlassian.bamboo.specs.api.builders.Variable;
-import com.atlassian.bamboo.specs.api.builders.docker.DockerConfiguration;
-import com.atlassian.bamboo.specs.api.builders.permission.PermissionType;
-import com.atlassian.bamboo.specs.api.builders.permission.Permissions;
-import com.atlassian.bamboo.specs.api.builders.permission.PlanPermissions;
-import com.atlassian.bamboo.specs.api.builders.plan.Job;
-import com.atlassian.bamboo.specs.api.builders.plan.Plan;
-import com.atlassian.bamboo.specs.api.builders.plan.PlanIdentifier;
-import com.atlassian.bamboo.specs.api.builders.plan.Stage;
-import com.atlassian.bamboo.specs.api.builders.plan.branches.BranchCleanup;
-import com.atlassian.bamboo.specs.api.builders.plan.branches.PlanBranchManagement;
-import com.atlassian.bamboo.specs.api.builders.project.Project;
-import com.atlassian.bamboo.specs.builders.task.CheckoutItem;
-import com.atlassian.bamboo.specs.builders.task.InjectVariablesTask;
-import com.atlassian.bamboo.specs.builders.task.ScriptTask;
-import com.atlassian.bamboo.specs.builders.task.VcsCheckoutTask;
-import com.atlassian.bamboo.specs.builders.task.VcsTagTask;
-import com.atlassian.bamboo.specs.builders.trigger.BitbucketServerTrigger;
-import com.atlassian.bamboo.specs.builders.trigger.ScheduledTrigger;
-import com.atlassian.bamboo.specs.model.task.InjectVariablesScope;
-import com.atlassian.bamboo.specs.model.task.ScriptTaskProperties.Location;
-import com.atlassian.bamboo.specs.util.BambooServer;
-
-/**
- * Plan configuration for Bamboo.
- * Learn more on: https://confluence.atlassian.com/display/BAMBOO/Bamboo+Specs
- */
-@BambooSpec
-public class PlanSpec {
-
- private static final String SERVICE_NAME = "persistence-service";
-
- private static final String SERVICE_KEY = SERVICE_NAME.toUpperCase().replaceAll("-", "");
-
-
- /**
- * Run main to publish plan on Bamboo
- */
- public static void main(final String[] args) throws Exception {
- //By default, credentials are read from the '.credentials' file.
- BambooServer bambooServer = new BambooServer("http://localhost:8085");
-
- Plan buildPlan = new PlanSpec().createPlanBuild();
- bambooServer.publish(buildPlan);
- PlanPermissions buildPlanPermission = new PlanSpec().createPlanPermission(buildPlan.getIdentifier());
- bambooServer.publish(buildPlanPermission);
-
- Plan secPlan = new PlanSpec().createSecBuild();
- bambooServer.publish(secPlan);
- PlanPermissions secPlanPermission = new PlanSpec().createPlanPermission(secPlan.getIdentifier());
- bambooServer.publish(secPlanPermission);
- }
-
-
- private PlanPermissions createPlanPermission(PlanIdentifier planIdentifier) {
-
- Permissions permission = new Permissions().userPermissions("atlbamboo",
- PermissionType.EDIT,
- PermissionType.VIEW,
- PermissionType.ADMIN,
- PermissionType.CLONE,
- PermissionType.BUILD)
- .groupPermissions("development", PermissionType.EDIT, PermissionType.VIEW, PermissionType.CLONE, PermissionType.BUILD)
- .groupPermissions("devplant", PermissionType.EDIT, PermissionType.VIEW, PermissionType.CLONE, PermissionType.BUILD)
- .loggedInUserPermissions(PermissionType.VIEW)
- .anonymousUserPermissionView();
- return new PlanPermissions(planIdentifier.getProjectKey(), planIdentifier.getPlanKey()).permissions(permission);
- }
-
-
- private Project project() {
-
- return new Project().name("RED").key(new BambooKey("RED"));
- }
-
-
- public Plan createPlanBuild() {
-
- return new Plan(project(), SERVICE_NAME, new BambooKey(SERVICE_KEY)).description("Build Plan for Persitence Service")
- .variables(new Variable("maven_add_param", ""))
- .stages(new Stage("Default Stage").jobs(new Job("Default Job", new BambooKey("JOB1")).tasks(new ScriptTask().description("Clean")
- .inlineBody("#!/bin/bash\n" + "set -e\n" + "rm -rf ./*"),
- new VcsCheckoutTask().description("Checkout Default Repository").cleanCheckout(true).checkoutItems(new CheckoutItem().defaultRepository()),
- new ScriptTask().description("Build").location(Location.FILE).fileFromPath("bamboo-specs/src/main/resources/scripts/build-java.sh").argument(SERVICE_NAME),
- createJUnitParserTask().description("Resultparser")
- .resultDirectories("**/test-reports/*.xml, **/target/surefire-reports/*.xml, **/target/failsafe-reports/*.xml")
- .enabled(true),
- new InjectVariablesTask().description("Inject git Tag").path("git.tag").namespace("g").scope(InjectVariablesScope.LOCAL),
- new VcsTagTask().description("${bamboo.g.gitTag}").tagName("${bamboo.g.gitTag}").defaultRepository())
- .dockerConfiguration(new DockerConfiguration().image("nexus.knecon.com:5001/infra/maven:3.8.4-openjdk-17-slim")
- .dockerRunArguments("--net=host")
- .volume("/etc/maven/settings.xml", "/usr/share/maven/ref/settings.xml")
- .volume("/var/run/docker.sock", "/var/run/docker.sock"))))
- .linkedRepositories("RED / " + SERVICE_NAME)
- .triggers(new BitbucketServerTrigger())
- .planBranchManagement(new PlanBranchManagement().createForVcsBranch()
- .delete(new BranchCleanup().whenInactiveInRepositoryAfterDays(14))
- .notificationForCommitters());
- }
-
-
- public Plan createSecBuild() {
-
- return new Plan(project(), SERVICE_NAME + "-Sec", new BambooKey(SERVICE_KEY + "SEC")).description("Security Analysis Plan")
- .stages(new Stage("Default Stage").jobs(new Job("Default Job", new BambooKey("JOB1")).tasks(new ScriptTask().description("Clean")
- .inlineBody("#!/bin/bash\n" + "set -e\n" + "rm -rf ./*"),
- new VcsCheckoutTask().description("Checkout Default Repository").cleanCheckout(true).checkoutItems(new CheckoutItem().defaultRepository()),
- new ScriptTask().description("Sonar").location(Location.FILE).fileFromPath("bamboo-specs/src/main/resources/scripts/sonar-java.sh").argument(SERVICE_NAME))
- .dockerConfiguration(new DockerConfiguration().image("nexus.knecon.com:5001/infra/maven:3.8.4-openjdk-17-slim")
- .dockerRunArguments("--net=host")
- .volume("/etc/maven/settings.xml", "/usr/share/maven/conf/settings.xml")
- .volume("/var/run/docker.sock", "/var/run/docker.sock"))))
- .linkedRepositories("RED / " + SERVICE_NAME)
- .triggers(new ScheduledTrigger().scheduleOnceDaily(LocalTime.of(23, 00)))
- .planBranchManagement(new PlanBranchManagement().createForVcsBranchMatching("release.*").notificationForCommitters());
- }
-
-}
diff --git a/bamboo-specs/src/main/resources/scripts/build-java.sh b/bamboo-specs/src/main/resources/scripts/build-java.sh
deleted file mode 100755
index 1180a4d62..000000000
--- a/bamboo-specs/src/main/resources/scripts/build-java.sh
+++ /dev/null
@@ -1,61 +0,0 @@
-#!/bin/bash
-set -e
-
-SERVICE_NAME=$1
-set SERVER_PORT=$(shuf -i 20000-65000 -n 1)
-
-if [[ "$bamboo_planRepository_branchName" == "master" ]]
-then
- branchVersion=$(cat pom.xml | grep -Eo " .*-SNAPSHOT" | sed -s 's|\(.*\)\..*\(-*.*\)|\1|' | tr -d ' ')
- latestVersion=$( semver $(git tag -l "${branchVersion}.*" ) | tail -n1 )
- newVersion="$(semver $latestVersion -p -i minor)"
-elif [[ "$bamboo_planRepository_branchName" == release* ]]
-then
- branchVersion=$(echo $bamboo_planRepository_branchName | sed -s 's|release\/\([0-9]\+\.[0-9]\+\)\.x|\1|')
- latestVersion=$( semver $(git tag -l "${branchVersion}.*" ) | tail -n1 )
- newVersion="$(semver $latestVersion -p -i patch)"
-elif [[ "${bamboo_version_tag}" != "dev" ]]
-then
- newVersion="${bamboo_version_tag}"
-else
- mvn -f ${bamboo_build_working_directory}/$SERVICE_NAME-v1/pom.xml \
- --no-transfer-progress \
- ${bamboo_maven_add_param} \
- clean install \
- -Djava.security.egd=file:/dev/./urandomelse
- echo "gitTag=${bamboo_planRepository_1_branch}_${bamboo_buildNumber}" > git.tag
- exit 0
-fi
-
-echo "gitTag=${newVersion}" > git.tag
-
-mvn --no-transfer-progress \
- -f ${bamboo_build_working_directory}/$SERVICE_NAME-v1/pom.xml \
- versions:set \
- -DnewVersion=${newVersion}
-
-mvn --no-transfer-progress \
- -f ${bamboo_build_working_directory}/$SERVICE_NAME-image-v1/pom.xml \
- versions:set \
- -DnewVersion=${newVersion}
-
-mvn -f ${bamboo_build_working_directory}/$SERVICE_NAME-v1/pom.xml \
- --no-transfer-progress \
- clean deploy \
- ${bamboo_maven_add_param} \
- -e \
- -DdeployAtEnd=true \
- -Dmaven.wagon.http.ssl.insecure=true \
- -Dmaven.wagon.http.ssl.allowall=true \
- -Dmaven.wagon.http.ssl.ignore.validity.dates=true \
- -DaltDeploymentRepository=iqser_release::default::https://nexus.knecon.com/repository/red-platform-releases
-
-mvn --no-transfer-progress \
- -f ${bamboo_build_working_directory}/$SERVICE_NAME-image-v1/pom.xml \
- package
-
-mvn --no-transfer-progress \
- -f ${bamboo_build_working_directory}/$SERVICE_NAME-image-v1/pom.xml \
- docker:push
-
-
diff --git a/bamboo-specs/src/main/resources/scripts/sonar-java.sh b/bamboo-specs/src/main/resources/scripts/sonar-java.sh
deleted file mode 100755
index 56129adcd..000000000
--- a/bamboo-specs/src/main/resources/scripts/sonar-java.sh
+++ /dev/null
@@ -1,45 +0,0 @@
-#!/bin/bash
-set -e
-
-SERVICE_NAME=$1
-set SERVER_PORT=$(shuf -i 20000-65000 -n 1)
-
-echo "build jar binaries"
-mvn -f ${bamboo_build_working_directory}/$SERVICE_NAME-v1/pom.xml \
- --no-transfer-progress \
- clean install \
- -Djava.security.egd=file:/dev/./urandomelse
-
-echo "dependency-check:aggregate"
-mvn --no-transfer-progress \
- -f ${bamboo_build_working_directory}/$SERVICE_NAME-v1/pom.xml \
- org.owasp:dependency-check-maven:aggregate
-
-if [[ -z "${bamboo_repository_pr_key}" ]]
-then
- echo "Sonar Scan for branch: ${bamboo_planRepository_1_branch}"
- mvn --no-transfer-progress \
- -f ${bamboo_build_working_directory}/$SERVICE_NAME-v1/pom.xml \
- sonar:sonar \
- -Dsonar.projectKey=RED_$SERVICE_NAME \
- -Dsonar.host.url=https://sonarqube.knecon.com \
- -Dsonar.login=${bamboo_sonarqube_api_token_secret} \
- -Dsonar.branch.name=${bamboo_planRepository_1_branch} \
- -Dsonar.dependencyCheck.jsonReportPath=target/dependency-check-report.json \
- -Dsonar.dependencyCheck.xmlReportPath=target/dependency-check-report.xml \
- -Dsonar.dependencyCheck.htmlReportPath=target/dependency-check-report.html
-else
- echo "Sonar Scan for PR with key1: ${bamboo_repository_pr_key}"
- mvn --no-transfer-progress \
- -f ${bamboo_build_working_directory}/$SERVICE_NAME-v1/pom.xml \
- sonar:sonar \
- -Dsonar.projectKey=RED_$SERVICE_NAME \
- -Dsonar.host.url=https://sonarqube.knecon.com \
- -Dsonar.login=${bamboo_sonarqube_api_token_secret} \
- -Dsonar.pullrequest.key=${bamboo_repository_pr_key} \
- -Dsonar.pullrequest.branch=${bamboo_repository_pr_sourceBranch} \
- -Dsonar.pullrequest.base=${bamboo_repository_pr_targetBranch} \
- -Dsonar.dependencyCheck.jsonReportPath=target/dependency-check-report.json \
- -Dsonar.dependencyCheck.xmlReportPath=target/dependency-check-report.xml \
- -Dsonar.dependencyCheck.htmlReportPath=target/dependency-check-report.html
-fi
diff --git a/bamboo-specs/src/test/java/buildjob/PlanSpecTest.java b/bamboo-specs/src/test/java/buildjob/PlanSpecTest.java
deleted file mode 100644
index 3d4e892fe..000000000
--- a/bamboo-specs/src/test/java/buildjob/PlanSpecTest.java
+++ /dev/null
@@ -1,21 +0,0 @@
-package buildjob;
-
-import org.junit.Test;
-
-import com.atlassian.bamboo.specs.api.builders.plan.Plan;
-import com.atlassian.bamboo.specs.api.exceptions.PropertiesValidationException;
-import com.atlassian.bamboo.specs.api.util.EntityPropertiesBuilders;
-
-public class PlanSpecTest {
-
- @Test
- public void checkYourPlanOffline() throws PropertiesValidationException {
-
- Plan buildPlan = new PlanSpec().createPlanBuild();
- EntityPropertiesBuilders.build(buildPlan);
-
- Plan secPlan = new PlanSpec().createSecBuild();
- EntityPropertiesBuilders.build(secPlan);
- }
-
-}
\ No newline at end of file