--- # 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" # 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" # 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 #default: # after_script: # - sudo rm -rf * .validate: &validate stage: build script: - mvn $MAVEN_CLI_OPTS_1 test-compile - mvn $MAVEN_CLI_OPTS_2 test-compile # 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: - mvn $MAVEN_CLI_OPTS_1 verify - mvn $MAVEN_CLI_OPTS_2 verify - cat dmnverifierapi/target/site/jacoco/index.html except: - master artifacts: expire_in: 1 week paths: - dmnverifierapi/target/site/jacoco # 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: image: maven:3.6.0-jdk-8 stage: deploy script: - mvn $MAVEN_CLI_OPTS_1 clean install -DskipTests - cp dmnverifierapi/target/*-runner.jar ~/dmn/dmn-backend-runner.jar - touch ~/dmn/backendReady - mvn $MAVEN_CLI_OPTS_2 clean install -DskipTests - cp dmnverifierfrontend/target/*-runner.jar ~/dmn/dmn-frontend-runner.jar - touch ~/dmn/frontendReady only: - master artifacts: paths: - dmnverifierapi/target/*-runner.jar - dmnverifierfrontend/target/*-runner.jar