diff --git a/.gitlab-ci.yml b/.gitlab-ci.yml new file mode 100644 index 0000000000000000000000000000000000000000..d118b8f9c549e935ec7d856ec516e553c0d69e4a --- /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 55cad0b0eecc022c38004b957742450c4f30669f..b6f255e07fb3cbdc46905f84ca9c604755741a92 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"]