Skip to content
Snippets Groups Projects
Code owners
Assign users and groups as approvers for specific file changes. Learn more.
.gitlab-ci.yml 4.48 KiB
image: 'maven:3.8.4-openjdk-17-slim'

cache:
  paths:
    - .m2/repository

variables:
  PROJECT_ARTIFACT_ID: kypo-adaptive-training
  DEPLOYMENT_INFO_VERSION_FILE: VERSION.txt
  MAVEN_CLI_OPTS: "-Dmaven.repo.local=$CI_PROJECT_DIR/.m2/repository"
  TRUSTED_HOST: gitlab.ics.muni.cz
  GIT_CLONE_URL: "git@${CI_SERVER_HOST}:${CI_PROJECT_PATH}.git"

stages:
  - build
  - tests
  - create_tag
  - generate_docs
  - docker_image_push
  - docker_image_push_development

build:
  stage: build
  script:
    - mvn clean install $MAVEN_CLI_OPTS -DskipTests -Dproprietary-repo-url=$PROPRIETARY_REPO_URL
  rules:
    - if: '$CI_COMMIT_BRANCH == "master"'
      changes:
        - $DEPLOYMENT_INFO_VERSION_FILE
      when: never
    - if: '$CI_COMMIT_TAG'
      changes:
        - pom.xml
      when: never
    - if: '$CI_COMMIT_BRANCH && $CI_COMMIT_MESSAGE !~ /Updated Swagger documentation generated/'
      when: always

tests:
  stage: tests
  script:
    - mvn test $MAVEN_CLI_OPTS -Dproprietary-repo-url=$PROPRIETARY_REPO_URL
  rules:
    - if: '$CI_COMMIT_BRANCH == "master"'
      changes:
        - $DEPLOYMENT_INFO_VERSION_FILE
      when: never
    - if: '$CI_COMMIT_TAG'
      changes:
        - pom.xml
      when: never
    - if: '$CI_COMMIT_BRANCH && $CI_COMMIT_MESSAGE !~ /Updated Swagger documentation generated/'
      when: always

create_tag:
  stage: create_tag
  # https://gitlab.ics.muni.cz/csirt-mu-infra/devops-support/docker-images/csirtmu-docker-common-ci
  image: 'registry.gitlab.ics.muni.cz:443/csirt-mu-devel/csirt-mu-devel-artifact-repository/docker-common-ci:v0.1.6'
  variables:
    GIT_STRATEGY: clone
  script:
    - source /app/export-tag-vars.sh $DEPLOYMENT_INFO_VERSION_FILE
    - echo $TAG_VERSION && echo $TAG_MESSAGE
    - /app/import-ssh-key.sh
    - /app/prepare-git.sh
    - /app/set-version-java.sh
    - /app/tag-and-push.sh
  rules:
    - if: '$CI_COMMIT_BRANCH == "master"'
      changes:
        - $DEPLOYMENT_INFO_VERSION_FILE