Skip to content
Snippets Groups Projects
Forked from ics-software / naming-backend
377 commits behind the upstream repository.
Code owners
Assign users and groups as approvers for specific file changes. Learn more.
.gitlab-ci.yml 1.82 KiB

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