diff --git a/.gitignore b/.gitignore
index b56f1dd..b4d3643 100644
--- a/.gitignore
+++ b/.gitignore
@@ -31,3 +31,6 @@ build/
### VS Code ###
.vscode/
+
+### Custom Ignored ###
+/.travis/**.asc
diff --git a/.travis.yml b/.travis.yml
index 50ace6d..58975dc 100644
--- a/.travis.yml
+++ b/.travis.yml
@@ -6,23 +6,48 @@ language: java
# https://docs.travis-ci.com/user/reference/trusty/#jvm-clojure-groovy-java-scala-images
jdk: oraclejdk11
+# https://docs.travis-ci.com/user/job-lifecycle#skipping-the-installation-phase
+install: skip
+
+before_script:
+ - chmod +x mvnw
+
# Each job in Travis CI has several steps:
# https://docs.travis-ci.com/user/job-lifecycle/
# The 'language: java' directive sets up sane defaults to test common java applications.
# We customize the script for compiling Maven application. For more about customizing the build:
# https://docs.travis-ci.com/user/customizing-the-build
script:
- - ./mvnw install -Dmaven.javadoc.skip=true -B -V
+ - "./mvnw clean install -Dmaven.javadoc.skip=true -B -V"
-before_install:
- - chmod +x mvnw
+before_deploy:
+ - openssl aes-256-cbc -K $encrypted_4f0d00631887_key -iv $encrypted_4f0d00631887_iv
+ -in .travis/gpg.asc.enc -out .travis/gpg.asc -d
-# This is to enable Codecov's coverage. If the build is successful, the code is submitted for code coverage analysis.
-#after_success:
-# - bash <(curl -s https://codecov.io/bash)
+deploy:
+ - skip_cleanup: true
+ provider: script
+ script: ./deploy.sh
+ on:
+ branch: master
+ - skip_cleanup: true
+ provider: script
+ script: ./deploy.sh
+ on:
+ tags: true
# https://docs.travis-ci.com/user/notifications#default-notification-settings
notifications:
email:
on_success: change
on_failure: always
+
+# https://docs.travis-ci.com/user/environment-variables/
+# https://docs.travis-ci.com/user/encryption-keys#usage
+# https://docs.travis-ci.com/user/encrypting-files/
+env:
+ global:
+ - secure: "EcN7//MxH2sPb0sC4xIDRXbo0/qU7KSir+zBZeXQdyGm1GO9FZJQyLt4gCRabUk8603WPAgBWWAHyeBSnOvQATZ/+4p+qpWmJE0+qZXV3V8WGsS9MoavV5HHxd8kU4T4Un/BdL/2SEmlGml8hQrLYFK+gup8sKZ2txou5/NINK3kqriZIBX8vN/hsz5FJDXgee1Sd1/rkuziFQ3Z8edkDnO+ija2/cbze2j28Cp7zGhBeo7QkvkIU0ngCloXcWNnQvhwjBxKNSZMx25MFI6Mv6r5uWtP4p5W/oVMVzgPWNPD45wWAdKzGgDGzv0dQl/aNJDYdZGZPYGNKDRvmrhGKeuZNOd+P7qXPwoJhKCNz/itcgGGizY3pAnIusORCMgmWVNRp5orviMTlneOBEY4jh1+aCz3PAXMVU+9zHV5UvINS4SlmdMGSJRo2UUfQvNyDHgvl1heTBPif3ykAkkzVIf3cLB1nPjBzEpNU38QAcRMZyGZ2HNMGDuGkvAag1zFQ5FKY6GXfubxLPvCgbH7BEjhW7hZcxcT5ynxc0bPRIUk2ab2IaBmJX/+2Ltl0vBcxusuM95LdyQnp+A/G/nf19Go6La0cQ3eWv7leBY1egJF80f538IjF2gCCdW3Nr6ptTgVHaccmORL5qtNofrEzxjk9ZGsCHuE1cydXurCwJw="
+ - secure: "OxrKUiF4TE0PRIhlv9fyoRgA79gv1McOAwEJDoYZ83O64DYF1x6COIInDBFiESSb8seuDKsP2XoenjZGihxyneDPYsDwje9HXDcXCKyuJAv/DEu19/+/ac/s5vTWU0mWMrlSpdyE2znEmQnDUqIx6VwZpTU/n0egJujSKeKW6YiYC0fPcUhM5m9ERdlQzRsNOos9Yb41gHf6ebL0TVv7G+SFtNvUphfjVh78WGkAgmBH5+WUtTuNcSf4gTCE63bAxDMmcVjkh9O41DtTx9eds4OLUYE5Q9pf/+rJo68zzeS5B9UZrSxIE3r6ojUwgX/Fv5dI3zuCV1olunVuPH1qYFc0l65SxNJAD7Cyxgg+X1M3o4NiugZMpXWR8hBwv4qKKvr+CJQ7nwPmoVPK51eqf9/bxTqVXIySLr4iDa70vkXFYBMIGv6r3YMXfiRx62pwlaN9t981YBU+0qWjWphwNh9K+LQskd9NWabTlHZPVBd4FhzPr7VfmLTqSNf/k2RvQD2qSgcYc9uoVd3XipPnrCTE60/DrNdYHx71L/BAz84+VT/d+zNNu++csFpYseCSfZP+cSXsYP14Lkmfj8rHRz6wSoTCXpG4UY74NsL0kD5xsTF2w/d7Cvm4obSICD8UbjAjWPq9DOZQdKRRE6hbKywqEtKb+AL66+Eb2rLCFn0="
+ - secure: "E1WCGA9hkzVBq8nag4k1equ7Kho5q+wXb6HrqZg3SRldmVwS+OOuDWCf3kEkT9rdez9cQU+699Jkoufgo0QCWoAmYwfVNf4NaWLQXrJcIzOpEm8ZKyr1XvrE/D3YbYm8WiVfBj2dXMFuDlRhrzL6i8vYfpjg2Pl97EsFEOCy+EbHWSQmO3rCv/Jq4WdrpH8YZgZailJL6essfvfB80d1F3B59l/Ic1WKsknqgxXXgaPuhrrbZtD8u+vUsb0SMj2E3ds8/AMlm1DwgCWw6W87z/HiyoyQE+pFCHUhK/ZC4qYdhAIAuuCN8ve4F4mXmu37rh8vuIOT6yh6f+ZNm600WQ17aKUSdHJMmjRuJGdRFmmIzIX2ezQaUr3kMiesWy4TfUyGNW/CCB6nRsBOwsKBdTI2/hS+QZTNBNdC347a30I9L7/nh2ia0VxCR1ApXZGQHmrzciDmhAZYsZBh4k/EgelXkJ9PmIDa0pGU9czLS4A+kOZ4jOCa2iA57KlobF0oO3ZFqsibdjO10vU3QCKah0LI3Y4rQdAZ/W6UmWrEHMXGDC2SSPsiSg8XpVbwQT3iNJfMw1jzfSUShyr8u1RkWi178v7yV9UvB+LCD/HY45IGdCbbRR23x18qXpZjPgz6zDwiIuTe9ByA+K4ete3UFArdW8WjFWWyuiG1oTjvKg4="
+ - secure: "DFg7HnJjoCgDGURa/zBYoLZdsoghpz0RgIijWpksqxPikuohojVZartQB5fkXxDOipVzh3sbMM390ecpSNetSEfmx7H8iv+aIt73Z4G/QLkgQDUY94S3MdpS4XBKMUEHFbWUwojZe1+0btNe+hu40JIMltkxFQ3CQMcEop/ql1YNAVF1j90tsXyyqcGotJg8Gnu8ADda4qDcDVPwxdgLkU3zcI031rgmNog6PkJfxe+rzkucXdvfAC5iom9tcXr+EGhM1Yn6mYUFjnuhoSrX4VvWbnn4dgW16sBCgdi0CH8RTH7mWEMuiBF6Rm4lrlnya2oKp4HYuwtqdxFpMiZehFzQ6U9eKky4KrBHsWSQgdT1w9Avrv0yuf3sj98a/TiMOqcSuH3EP3LI0APDTIQxtf0Ji+wB/fyw3td+ZTiDqUIjAe8o5DG0/4zZkO2/Ke3XORz2rljKfL26Jl8ai3+5uqAyubT8pxza29i2puWwVWdLxHcA0iIFbDYzVQRVSsozvz/jzktSa71H+Tb0MOES4hznBxBpktlc8mQTO8FQUVX+1Q/gH8gT6eo2TryJeMh5x70UvELBopmKJNs2eubbopJWRHtTHFPBO+LvJrqpCc1rcJY1vghcHb0+onAp87XjpgyBRWQAgIeUALZSkljxcU82sNl4FF/ILlEIqeFsCu4="
diff --git a/.travis/gpg.asc.enc b/.travis/gpg.asc.enc
new file mode 100644
index 0000000..c925d89
Binary files /dev/null and b/.travis/gpg.asc.enc differ
diff --git a/.travis/maven-settings.xml b/.travis/maven-settings.xml
new file mode 100644
index 0000000..246a786
--- /dev/null
+++ b/.travis/maven-settings.xml
@@ -0,0 +1,26 @@
+
+
+
+ ossrh
+ ${env.OSSRH_USERNAME}
+ ${env.OSSRH_PASSWORD}
+
+
+
+
+
+ ossrh
+
+ true
+
+
+ gpg
+ ${env.GPG_KEY_NAME}
+ ${env.GPG_PASSPHRASE}
+
+
+
+
diff --git a/deploy.sh b/deploy.sh
new file mode 100644
index 0000000..6833a90
--- /dev/null
+++ b/deploy.sh
@@ -0,0 +1,45 @@
+#!/bin/bash
+# expects variables to be set:
+# - OSSRH_USERNAME
+# - OSSRH_PASSWORD
+# - GPG_KEY_NAME
+# - GPG_PASSPHRASE
+# expects file to exist:
+# - .travis/gpg.asc
+
+set -e
+
+# Check the variables are set
+if [ -z "$OSSRH_USERNAME" ]; then
+ echo "missing environment value: OSSRH_USERNAME" >&2
+ exit 1
+fi
+
+if [ -z "$OSSRH_PASSWORD" ]; then
+ echo "missing environment value: OSSRH_PASSWORD" >&2
+ exit 1
+fi
+
+if [ -z "$GPG_KEY_NAME" ]; then
+ echo "missing environment value: GPG_KEY_NAME" >&2
+ exit 1
+fi
+
+if [ -z "$GPG_PASSPHRASE" ]; then
+ echo "missing environment value: GPG_PASSPHRASE" >&2
+ exit 1
+fi
+
+# Prepare the local keyring (requires travis to have decrypted the file
+# beforehand)
+gpg --fast-import .travis/gpg.asc
+
+if [ ! -z "$TRAVIS_TAG" ]; then
+ echo "on a tag -> set pom.xml to $TRAVIS_TAG"
+ mvn --settings "${TRAVIS_BUILD_DIR}/.travis/mvn-settings.xml" org.codehaus.mojo:versions-maven-plugin:2.7:set -DnewVersion=$TRAVIS_TAG 1>/dev/null 2>/dev/null
+else
+ echo "not on a tag -> keep snapshot version in pom.xml"
+fi
+
+# Run the maven deploy steps
+mvn deploy -P publish -DskipTests=true --settings "${TRAVIS_BUILD_DIR}/.travis/mvn-settings.xml"
diff --git a/pom.xml b/pom.xml
index b932a17..e6205a1 100644
--- a/pom.xml
+++ b/pom.xml
@@ -84,19 +84,18 @@
-
-
- sonatype_releases
- Nexus Release Repository
-
- https://oss.sonatype.org/service/local/staging/deploy/maven2
-
- sonatype_snapshots
+ ossrh
Nexus Snapshot Repository
https://oss.sonatype.org/content/repositories/snapshots
+
+
+ ossrh
+ Nexus Release Repository
+ https://oss.sonatype.org/service/local/staging/deploy/maven2
+
@@ -153,9 +152,9 @@
1.6.8
true
- sonatype_releases
+ ossrh
https://oss.sonatype.org/
- false
+ true