Maven.gitlab-ci.yml 2.62 KB
Newer Older
1 2
# Build JAVA applications using Apache Maven (http://maven.apache.org)
# For docker image tags see https://hub.docker.com/_/maven/
3
#
4
# For general lifecycle information see https://maven.apache.org/guides/introduction/introduction-to-the-lifecycle.html
5

6
# This template will build and test your projects
7
# * Caches downloaded dependencies and plugins between invocation.
Lin Jen-Shin's avatar
Lin Jen-Shin committed
8
# * Verify but don't deploy merge requests.
9
# * Deploy built artifacts from master branch only.
10 11

variables:
12
  # This will suppress any download for dependencies and plugins or upload messages which would clutter the console log.
13
  # `showDateTime` will show the passed time in milliseconds. You need to specify `--batch-mode` to make this work.
14
  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"
15 16
  # As of Maven 3.3.0 instead of this you may define these options in `.mvn/maven.config` so the same config is used
  # when running from the command line.
Lin Jen-Shin's avatar
Lin Jen-Shin committed
17
  # `installAtEnd` and `deployAtEnd` are only effective with recent version of the corresponding plugins.
18 19
  MAVEN_CLI_OPTS: "--batch-mode --errors --fail-at-end --show-version -DinstallAtEnd=true -DdeployAtEnd=true"

20 21 22
# This template uses jdk8 for verifying and deploying images
image: maven:3.3.9-jdk-8

23
# Cache downloaded dependencies and plugins between builds.
24
# To keep cache across branches add 'key: "$CI_JOB_NAME"'
25 26
cache:
  paths:
27
    - .m2/repository
28 29 30 31 32 33

# For merge requests do not `deploy` but only run `verify`.
# See https://maven.apache.org/guides/introduction/introduction-to-the-lifecycle.html
.verify: &verify
  stage: test
  script:
34
    - 'mvn $MAVEN_CLI_OPTS verify'
35
  except:
36
    - master
37 38 39 40 41

# Verify merge requests using JDK8
verify:jdk8:
  <<: *verify

42
# To deploy packages from CI, create a ci_settings.xml file
43
# For deploying packages to GitLab's Maven Repository: See https://docs.gitlab.com/ee/user/project/packages/maven_repository.html#creating-maven-packages-with-gitlab-cicd for more details.
44
# Please note: The GitLab Maven Repository is currently only available in GitLab Premium / Ultimate.
45
# For `master` branch run `mvn deploy` automatically.
46 47 48 49
deploy:jdk8:
  stage: deploy
  script:
    - if [ ! -f ci_settings.xml ];
50
        then echo "CI settings missing\! If deploying to GitLab Maven Repository, please see https://docs.gitlab.com/ee/user/project/packages/maven_repository.html#creating-maven-packages-with-gitlab-cicd for instructions.";
51 52 53
      fi
    - 'mvn $MAVEN_CLI_OPTS deploy -s ci_settings.xml'
  only:
54
    - master