-
Notifications
You must be signed in to change notification settings - Fork 25
/
.travis.yml
78 lines (74 loc) · 3.45 KB
/
.travis.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
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
language: java
jdk:
- openjdk17
services:
- docker
cache:
directories:
- $HOME/.m2
stages:
- test
- name: deploy-snapshots
if: branch = master AND type = push
- name: release-check
if: (branch =~ /^release.*/)
- name: release
if: (branch =~ /^release.*/)
jobs:
include:
- stage: test
addons:
sonarcloud:
organization: "susom"
token:
secure: "OycpYUVhXJL8UZ4DvJN1u1iTWL4qvvCpm3YHh4Gm1xiB8Z81bhjE6be35mnDWreEMStPko2EIk01QS/0NMFGf8WP7JySsbMoK5llnbi8dEEHBRUvoJDu7uoJ1CdNkOOpT0sw1KKN87aap51Fe15YHJJrXHXbMWrbnWgPTqqjIkE="
before_script:
- cp ./travis/maven-settings.xml $HOME/.m2/settings.xml
- sed -i "s/-SNAPSHOT/-build-$TRAVIS_BUILD_NUMBER/" pom.xml
- export TZ=America/Los_Angeles
- date
- echo "$ARTIFACT_REGISTRY_KEY" | docker login -u _json_key_base64 --password-stdin https://us-west1-docker.pkg.dev
# Skip the default mvn command because we want to set the profile explicitly
install: skip
script: |
echo "test" &&
mvn -e -Dfailsafe.rerunFailingTestsCount=3 -Dmaven.javadoc.skip=true "-Dhsqldb.database.url=jdbc:hsqldb:file:target/hsqldb;shutdown=true" -Dhsqldb.database.user=SA -Dhsqldb.database.password= -Pcoverage,hsqldb verify &&
bash test-postgres.sh &&
bash test-sqlserver.sh &&
bash test-oracle.sh &&
mvn -e org.jacoco:jacoco-maven-plugin:report sonar:sonar -Dsonar.projectKey=susom_database
after_failure:
- echo "\n=== SUREFIRE REPORTS ===\n"
- for F in target/surefire-reports/*.txt; do echo $F; cat $F; echo; done
- stage: deploy-snapshots
script:
- echo "deploy-snapshots"
- cp ./travis/maven-settings.xml $HOME/.m2/settings.xml
- sed -i "s/-SNAPSHOT/-build-$TRAVIS_BUILD_NUMBER/" pom.xml
# When push to master occurs, all the versions should be -SNAPSHOTs and we will auto-deploy
- mvn --batch-mode -e -DskipTests=true deploy
- stage: release-check
script:
- echo "release-check"
- cp ./travis/maven-settings.xml $HOME/.m2/settings.xml
- sed -i "s/-SNAPSHOT/-build-$TRAVIS_BUILD_NUMBER/" pom.xml
# Ensure we don't have any external SNAPSHOT dependencies
- mvn --batch-mode release:prepare -DskipTests=true -DdryRun=true
- stage: release
script:
- echo "release"
- cp ./travis/maven-settings.xml $HOME/.m2/settings.xml
- sed -i "s/-SNAPSHOT/-build-$TRAVIS_BUILD_NUMBER/" pom.xml
# Git fix based on: https://github.com/sbt/sbt-release/issues/210
- echo "Fixing git setup for $TRAVIS_BRANCH in preparation for release"
- git checkout ${TRAVIS_BRANCH}
- git branch -u origin/${TRAVIS_BRANCH}
- git config branch.${TRAVIS_BRANCH}.remote origin
- git config branch.${TRAVIS_BRANCH}.merge refs/heads/${TRAVIS_BRANCH}
# Prepare for signing artifacts as part of release process
# NOTE: based on http://www.debonair.io/post/maven-cd/
- openssl aes-256-cbc -K $encrypted_4d75e2900770_key -iv $encrypted_4d75e2900770_iv -in travis/codesigning.asc.enc -out travis/codesigning.asc -d
- gpg --fast-import travis/codesigning.asc
# Perform mvn release steps
- mvn --batch-mode release:prepare -DskipTests=true -DscmCommentPrefix="[maven-release-plugin][skip travis]" # NOTE: this stop's travis from building based on the tag's commit/push.
- mvn --batch-mode release:perform