-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy path.gitlab-ci.yml
51 lines (45 loc) · 1.57 KB
/
.gitlab-ci.yml
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
image: docker:git
services:
- docker:dind
stages:
- deploy
- release
variables:
MAVEN_OPTS: "-Djava.awt.headless=true -Dsonar.host.url=$SONAR_HOST_URL"
MAVEN_CLI_OPTS: "-s .m2/settings.xml -Dmaven.repo.local=./.m2/repository -Dnexus.url=$NEXUS_URL -Dnexus.login=$NEXUS_USERNAME -Dnexus.pwd=$NEXUS_PASSWORD -Djava.awt.headless=true --batch-mode --errors --fail-at-end --show-version"
cache:
paths:
- ./.m2/repository
# keep cache across branch
key: "$CI_PROJECT_PATH"
maven-deploy:
stage: deploy
image: maven:alpine
script: "mvn clean deploy $MAVEN_CLI_OPTS"
artifacts:
paths:
- target/*.jar
only:
variables:
- $CI_COMMIT_MESSAGE !~ /prepare release/ && $CI_COMMIT_MESSAGE !~ /prepare for next development iteration/
refs:
- master
release_artifact:
stage: release
image: maven:3-jdk-8
script:
- eval `ssh-agent -s`
- ssh-add <(echo "$GIT_SSH_PRIV_KEY")
- mkdir -p ~/.ssh
- '[[ -f /.dockerenv ]] && echo -e "Host *\n\tStrictHostKeyChecking no\n\n" > ~/.ssh/config'
- git config --global user.email "[email protected]"
- git config --global user.name "marco.spasiano"
- git checkout -B "$CI_BUILD_REF_NAME"
- mvn $MAVEN_CLI_OPTS release:clean release:prepare -DreleaseVersion=$MAVEN_RELEASE_VERSION -Darguments="-DskipTests" -Dresume=false -B
- mvn $MAVEN_CLI_OPTS release:perform -Darguments="-DskipTests" -Dresume=false -B
only:
variables:
- $CI_COMMIT_MESSAGE !~ /prepare release/ && $CI_COMMIT_MESSAGE !~ /prepare for next development iteration/
refs:
- master
when: manual