From 4b3d5e887aa16461e7532b3a80c3c706b7b2bf79 Mon Sep 17 00:00:00 2001
From: Anders Harrisson <anders.harrisson@ess.eu>
Date: Wed, 2 Mar 2022 15:56:56 +0100
Subject: [PATCH] Add GitLab-CI build pipeline

JIRA INFRA-4886
---
 .gitlab-ci.yml | 87 ++++++++++++++++++++++++++++++++++++++++++++++++++
 Dockerfile     |  4 +--
 2 files changed, 89 insertions(+), 2 deletions(-)
 create mode 100644 .gitlab-ci.yml

diff --git a/.gitlab-ci.yml b/.gitlab-ci.yml
new file mode 100644
index 0000000..d118b8f
--- /dev/null
+++ b/.gitlab-ci.yml
@@ -0,0 +1,87 @@
+
+variables:
+  CONTAINER_BRANCH_IMAGE: $CI_REGISTRY_IMAGE:$CI_COMMIT_REF_NAME
+
+stages:
+  - compile
+  - test
+  - package
+  - analyse
+  - publish
+  - image
+  - release
+  - deploy
+
+.maven:
+  image: registry.esss.lu.se/ics-docker/maven:openjdk-17
+  tags:
+    - docker
+
+.docker:
+  image: docker:latest
+  tags:
+    - docker
+
+compile:
+  stage: compile
+  extends: .maven
+  script:
+    - mvn --batch-mode compile
+  artifacts:
+    paths:
+      - target/
+    expire_in: 1 day
+
+test:
+  stage: test
+  extends: .maven
+  script:
+    - mvn --batch-mode test
+  artifacts:
+    reports:
+      junit:
+      - target/surefire-reports/TEST-*.xml
+
+package:
+  stage: package
+  extends: .maven
+  script:
+    - mvn --batch-mode install
+  artifacts:
+    paths:
+      - target/naming-backend-*.jar
+
+# sonar:
+#   stage: analyse
+#   extends: .maven
+#   script:
+#     - mvn --batch-mode sonar:sonar -Dsonar.login=$SONARQUBE_TOKEN -Dsonar.branch.name=$CI_COMMIT_REF_SLUG
+#   only:
+#     - branches@ics-software/naming-backend
+
+docker-build:
+  stage: image
+  extends: .docker
+  before_script:
+    - docker login -u "$CI_REGISTRY_USER" -p "$CI_REGISTRY_PASSWORD" $CI_REGISTRY
+  script:
+    - docker build -t $CONTAINER_BRANCH_IMAGE .
+    - docker push $CONTAINER_BRANCH_IMAGE
+  only:
+    - branches
+
+docker-release:
+  stage: release
+  extends: .docker
+  before_script:
+    - apk add xmlstarlet
+    - POM_VERSION=$(xmlstarlet sel -N pom=http://maven.apache.org/POM/4.0.0 -t -v "/pom:project/pom:version" pom.xml)
+    - docker login -u "$CI_REGISTRY_USER" -p "$CI_REGISTRY_PASSWORD" $CI_REGISTRY
+  script:
+    - docker pull $CONTAINER_BRANCH_IMAGE
+    - docker tag $CONTAINER_BRANCH_IMAGE $CI_REGISTRY_IMAGE:$POM_VERSION
+    - docker tag $CONTAINER_BRANCH_IMAGE $CI_REGISTRY_IMAGE:latest
+    - docker push $CI_REGISTRY_IMAGE:$POM_VERSION
+    - docker push $CI_REGISTRY_IMAGE:latest
+  only:
+    - main
diff --git a/Dockerfile b/Dockerfile
index 55cad0b..b6f255e 100644
--- a/Dockerfile
+++ b/Dockerfile
@@ -5,6 +5,6 @@
 FROM openjdk:17
 
 # deployment unit
-COPY target/naming-backend-0.0.1-SNAPSHOT.jar /naming/naming-backend-0.0.1-SNAPSHOT.jar
+COPY target/naming-backend-*.jar /naming/naming-backend.jar
 
-CMD ["java", "-jar", "/naming/naming-backend-0.0.1-SNAPSHOT.jar", "--spring.config.name=application-docker"]
+CMD ["java", "-jar", "/naming/naming-backend.jar", "--spring.config.name=application-docker"]
-- 
GitLab