Skip to content
Snippets Groups Projects
.gitlab-ci.yml 2.31 KiB
Newer Older
Jonas Blatt's avatar
Jonas Blatt committed
---
# Build JAVA applications using Apache Maven (http://maven.apache.org)
stages:
  - build
  - test
  - deploy

variables:
  MAVEN_OPTS: "-Dhttps.protocols=TLSv1.2 -Dmaven.repo.local=$CI_PROJECT_DIR/.m2/repository -Dorg.slf4j.simpleLogger.log.org.apache.maven.cli.transfer.Slf4jMavenTransferListener=WARN -Dorg.slf4j.simpleLogger.showDateTime=true -Djava.awt.headless=true"
  
  # Backend 
  MAVEN_CLI_OPTS_1: "-f dmnverifierapi/pom.xml --batch-mode --errors --fail-at-end --show-version -DinstallAtEnd=true -DdeployAtEnd=false -Dvertx.cacheDirBase=/home/gitlab-runner/cache/vertx-cache -Dquarkus.http.test-port=8085"
Jonas Blatt's avatar
Jonas Blatt committed
  # Frontend
  MAVEN_CLI_OPTS_2: "-f dmnverifierfrontend/pom.xml --batch-mode --errors --fail-at-end --show-version -DinstallAtEnd=true -DdeployAtEnd=false -Dvertx.cacheDirBase=/home/gitlab-runner/cache/vertx-cache -Dquarkus.http.test-port=8086"
Jonas Blatt's avatar
Jonas Blatt committed

# Cache downloaded dependencies and plugins between builds.
# To keep cache across branches add 'key: "$CI_JOB_NAME"'
cache:
  paths:
    - .m2/repository

# Remove trash after builds
Jonas Blatt's avatar
Jonas Blatt committed
#default:
#  after_script:
#    - sudo rm -rf *
Jonas Blatt's avatar
Jonas Blatt committed

.validate: &validate
  stage: build
  script:
Jonas Blatt's avatar
Jonas Blatt committed
    - mvn $MAVEN_CLI_OPTS_1 test-compile
    - mvn $MAVEN_CLI_OPTS_2 test-compile
Jonas Blatt's avatar
Jonas Blatt committed
    
# For merge requests do not `install` but only run `verify`.
# See https://maven.apache.org/guides/introduction/introduction-to-the-lifecycle.html
.verify: &verify
  stage: test
  script:
Jonas Blatt's avatar
Jonas Blatt committed
    - mvn $MAVEN_CLI_OPTS_1 verify
    - mvn $MAVEN_CLI_OPTS_2 verify
    - cat dmnverifierapi/target/site/jacoco/index.html
Jonas Blatt's avatar
Jonas Blatt committed
  except:
    - master
Jonas Blatt's avatar
Jonas Blatt committed
  artifacts:
Jonas Blatt's avatar
Jonas Blatt committed
    expire_in: 1 week
Jonas Blatt's avatar
Jonas Blatt committed
    paths:
Jonas Blatt's avatar
Jonas Blatt committed
      - dmnverifierapi/target/site/jacoco
Jonas Blatt's avatar
Jonas Blatt committed

# Validate merge requests using JDK8
validate:jdk8:
  <<: *validate
  image: maven:3.6.0-jdk-8

# Verify merge requests using JDK8
verify:jdk8:
  <<: *verify
  image: maven:3.6.0-jdk-8

deploy:
Jonas Blatt's avatar
Jonas Blatt committed
  image: maven:3.6.0-jdk-8
Jonas Blatt's avatar
Jonas Blatt committed
  stage: deploy
  script:
Jonas Blatt's avatar
Jonas Blatt committed
    - mvn $MAVEN_CLI_OPTS_1 clean install -DskipTests
    - cp dmnverifierapi/target/*-runner.jar ~/dmn/dmn-backend-runner.jar
Jonas Blatt's avatar
Jonas Blatt committed
    - touch ~/dmn/backendReady
Jonas Blatt's avatar
Jonas Blatt committed
    - mvn $MAVEN_CLI_OPTS_2 clean install -DskipTests
    - cp dmnverifierfrontend/target/*-runner.jar ~/dmn/dmn-frontend-runner.jar
Jonas Blatt's avatar
Jonas Blatt committed
    - touch ~/dmn/frontendReady
Jonas Blatt's avatar
Jonas Blatt committed
  only:
Jonas Blatt's avatar
Jonas Blatt committed
    - master
Jonas Blatt's avatar
Jonas Blatt committed
  artifacts:
Jonas Blatt's avatar
Jonas Blatt committed
    paths:
Jonas Blatt's avatar
Jonas Blatt committed
      - dmnverifierapi/target/*-runner.jar
      - dmnverifierfrontend/target/*-runner.jar