diff --git a/.mvn/wrapper/maven-wrapper.jar b/.mvn/wrapper/maven-wrapper.jar new file mode 100644 index 0000000..c6feb8b Binary files /dev/null and b/.mvn/wrapper/maven-wrapper.jar differ diff --git a/.mvn/wrapper/maven-wrapper.properties b/.mvn/wrapper/maven-wrapper.properties new file mode 100644 index 0000000..56bb016 --- /dev/null +++ b/.mvn/wrapper/maven-wrapper.properties @@ -0,0 +1 @@ +distributionUrl=https://repo1.maven.org/maven2/org/apache/maven/apache-maven/3.5.0/apache-maven-3.5.0-bin.zip \ No newline at end of file diff --git a/.travis.yml b/.travis.yml index 4760fea..bbc7669 100644 --- a/.travis.yml +++ b/.travis.yml @@ -1,3 +1,15 @@ language: java jdk: - - oraclejdk8 \ No newline at end of file +- oraclejdk8 +cache: + directories: + - "$HOME/.m2" +install: true +script: "./mvnw clean install" +after_success: +- "./travis-ci/travis-deploy.sh" +env: + global: + - secure: IZu0VGBsjxwaWGiBh0muZTbxE25aDubsgNGuCp/6tHRtOA73tIwLOeeINJd4iblMvLFg6SrVW7wMhO2N12Pxt5v/czjt3q+t34faXlKP9NK4DjwT2awf96oafVVn3yK0e8S60YwOeSzutF0pEMhGa2nQCmEsAyTcbuavBABeXPKP9QwO9ByywFLZIsbg2uwU1JJALQeyHgYl8DVag2UdVUBfQ2TBB3VaCcwiDOmd/V7Ks2BtzGE4mGDJOWiBrOsANlKwYMhHqcgzH29KeiDvNs8JU8YfizCeQA4mOAUut5A+u+2dXeqdrqL9Nch618tFb73ty4l/rlInmIXRnuV/JvWR8ZnX2N1ngJGe3GOCnA+oSHDDkdW4aRKvcrs8hnKmSew/OV9+locRvYIOO3tJq4A2Rc0izF5jSn+i+yUJpaZlpKiuNSNs0eRTtUggUAQn61c+1In4aWSofsMpObD/KD7K/N5oi71cznxHFHl98QAFlHRza1siYVPAvtINbG04ijChYPFSH527+2XMbis4BhyqoCYH7+xa4qsLriOVuvodomQCaB+5lIiiDYC/N7zesz167Dgv/Gdxfk8NxKjr8XO0dPI3303SspQi2aR9EHpvZF7TkABx/7nzxq04V1u4bHT+EBFyT3Cg+SFiAv3MAbYal2SuzNSAGoRShTySnEs= + - secure: pJLKI3vrSxoD8eHFL4dRJOvn0kjCBk6iQkeRtUVQe9hoE+zyzqlLPG2Gy13qNCRnmx3B3HDPPnGWeUbeyXNHB5TtjXdoYkqUREgwNsV0d4MxvWf2AX52WmhoQylYj1sZEQPPcG1+3+C383PbmoFXg+9nFoevJuhLQGsn5jt8R9Lzk1LPNua1O+v7VThq5HuI5dr32PskQYOSC4bX4B4I/OnzFxLickqjNr8UALzzV5dmNtqBClsmWXz8kA/XQBx4iso3IxLL8/6+oceBnPbC7Vjmx07E79xSqb4dUTH5UWeJSsugw0Pdt4fR/VjoSW8HUDl0MpjKIhiPvA3j2fjoOwuhFSCDpTn5m62Fb2qOvJSsFkg0s0kZl7VDHvFPLZvnelFwLV2eB8M7R7Zu9EHmt1Vq6Bk/XpH9pONNp6EyFpnudXMln1sd5TlRykNwQgP+wQE94bak3xTyzlWGsP9ynjnQQqZS1lcI6FVr0SHv4+QjaHKR9MXcYodjpa3FkIPXiaMiaUETI1X4wCaePaVD0MqGe11+cdO6DpLFEUP91dCbinRag5ct6A+KAE/9ncQIr9kPRnHOXZqWj3ZxG1A7AYNwX9zUomZazKOr8vB1g+Vx8ijH0B+EcxWsykTxIUjQv179uVBwVvhg9V1Osqzuz0bvpO+jDawv4U5kswU4VWU= + - secure: X8oPsjaaL7fk5r4tMp+1cpcXzOUlqwcQQImIV+O1j/h7u2qZJpwErHJZx2hDKCQu/brkHlFPSRgc7hxhXIsZ3tvXqUtfl8WkaszceVkqs23uWQLPh5ENL/yxrRPiiQQ9+tliq/VrnzRFrXmnUJKG4c0m7b7gB1lwvpFWNl2LegmvMxoWAJQno1tjXoNt7w1qykeQNL1K/BvzEYWroNbz11XnlaYuCO18tAPSSfm7umk7p3mzJzKFtKfWbaEhUecJx9ah5yAv/haT/yQfoJoZF9HkjtbcYHhw1TH9IsWFurm8VxzM1KvW7DxM+GdpABNkYYQ71iv0EUuU4M+n+w/stv/aOXLoM9/qRijJhK9YpsMcPj3rB2vPjd0dBpz3yOrlhxubu82O+zRkcBi0VYbxbMq19CmPVY1RtuLbfLCCJlbTlwPOof5NZ02r6SlrBJ+glmGgT51oTwHMvsU1y0iryOcN7DuK2WC2H3f/AZYNSo1c2oMefY5Rv08GqYr2dthmGhhmoN+GjOOKcJhZgxXNMQesuPfYHXcyyDsl5ApNWK5K0KJcSJ/KD2Ls1Fc90bzUtCVazZ1MI5NqIYutfqqyhcqI1ftn3m6fPDbpkdQcCbdhMq1ebCo6veq52onjzAbA2OV1sWc24zzjLVq0RV/hHCz9smaKM5fIwvbDk/JfOAs= diff --git a/CHANGELOG b/CHANGELOG index 77e6e04..68f05a3 100644 --- a/CHANGELOG +++ b/CHANGELOG @@ -1,6 +1,15 @@ CHANGELOG ========= +3.0.0 +----- + +* BREAKING: Remove Spring Dependency Management +* Upgrade kemitix-checkstyle-ruleset to 3.1.0 +* Upgrade maven-pmd to 3.8 (PMD 5.6.1) +* Add deploy to nexus from Travis CI +* Add Pitest Mutation testing + 2.8.0 ----- diff --git a/README.md b/README.md index 1a37cef..a8ab584 100644 --- a/README.md +++ b/README.md @@ -25,10 +25,6 @@ desired value. * kemitix-checkstyle-ruleset.version * kemitix-checkstyle-ruleset.level * lombok.version -* spring-boot.version -* spring-platform.version -* spring-cloud.version -* spring-data.version * digraph-dependency.version * digraph-dependency.basePackage * maven-javadoc-plugin.version @@ -42,6 +38,7 @@ desired value. * huntbugs.version * jacoco-maven-plugin.version * highwheel-maven.version +* pitest.version * maven-jxr-plugin.version * jacoco-class-line-covered-ratio * jacoco-class-instruction-covered-ratio @@ -201,7 +198,46 @@ classes. ### Configuration -The plugin will `analyse` the project during the `compile` phase. +The plugin will `analyse` the project during the `verify` phase. + +## Pitest Plugin + +The [Pitest Plugin](http://pitest.org/) +provides mutation testing for classes found in the generated `target` +directory. + +### Configuration + +The plugin with perform mutation tests during the `verify` phase. + +By default, classed named `Immutable*`, will not be included. +(e.g. classes generated by `org.immutables:value`) + +The following properties can adjust the default configuration. + +#### `pitest.skip` + +Default is `false`. + +Set this to `true` to disable the **Pitest Plugin**. + +#### `pitest.coverage` + +Default is `0`%. (i.e. disabled) + +Line coverage at which to fail build. + +#### `pitest.mutation` + +Default is `0`%. (i.e. disabled) + +Mutation score threshold at which to fail build. + +#### `pitest.failWhenNoMutations` + +Default is `true`. + +Set this to `false` to not fail build when there are no mutations. ## Digraph Dependency Plugin diff --git a/mvnw b/mvnw new file mode 100755 index 0000000..6ecc150 --- /dev/null +++ b/mvnw @@ -0,0 +1,236 @@ +#!/bin/sh +# ---------------------------------------------------------------------------- +# Licensed to the Apache Software Foundation (ASF) under one +# or more contributor license agreements. See the NOTICE file +# distributed with this work for additional information +# regarding copyright ownership. The ASF licenses this file +# to you under the Apache License, Version 2.0 (the +# "License"); you may not use this file except in compliance +# with the License. You may obtain a copy of the License at +# +# http://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, +# software distributed under the License is distributed on an +# "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY +# KIND, either express or implied. See the License for the +# specific language governing permissions and limitations +# under the License. +# ---------------------------------------------------------------------------- + +# ---------------------------------------------------------------------------- +# Maven2 Start Up Batch script +# +# Required ENV vars: +# ------------------ +# JAVA_HOME - location of a JDK home dir +# +# Optional ENV vars +# ----------------- +# M2_HOME - location of maven2's installed home dir +# MAVEN_OPTS - parameters passed to the Java VM when running Maven +# e.g. to debug Maven itself, use +# set MAVEN_OPTS=-Xdebug -Xrunjdwp:transport=dt_socket,server=y,suspend=y,address=8000 +# MAVEN_SKIP_RC - flag to disable loading of mavenrc files +# ---------------------------------------------------------------------------- + +if [ -z "$MAVEN_SKIP_RC" ] ; then + + if [ -f /etc/mavenrc ] ; then + . /etc/mavenrc + fi + + if [ -f "$HOME/.mavenrc" ] ; then + . "$HOME/.mavenrc" + fi + +fi + +# OS specific support. $var _must_ be set to either true or false. +cygwin=false; +darwin=false; +mingw=false +case "`uname`" in + CYGWIN*) cygwin=true ;; + MINGW*) mingw=true;; + Darwin*) darwin=true + # + # Look for the Apple JDKs first to preserve the existing behaviour, and then look + # for the new JDKs provided by Oracle. + # + if [ -z "$JAVA_HOME" ] && [ -L /System/Library/Frameworks/JavaVM.framework/Versions/CurrentJDK ] ; then + # + # Apple JDKs + # + export JAVA_HOME=/System/Library/Frameworks/JavaVM.framework/Versions/CurrentJDK/Home + fi + + if [ -z "$JAVA_HOME" ] && [ -L /System/Library/Java/JavaVirtualMachines/CurrentJDK ] ; then + # + # Apple JDKs + # + export JAVA_HOME=/System/Library/Java/JavaVirtualMachines/CurrentJDK/Contents/Home + fi + + if [ -z "$JAVA_HOME" ] && [ -L "/Library/Java/JavaVirtualMachines/CurrentJDK" ] ; then + # + # Oracle JDKs + # + export JAVA_HOME=/Library/Java/JavaVirtualMachines/CurrentJDK/Contents/Home + fi + + if [ -z "$JAVA_HOME" ] && [ -x "/usr/libexec/java_home" ]; then + # + # Apple JDKs + # + export JAVA_HOME=`/usr/libexec/java_home` + fi + ;; +esac + +if [ -z "$JAVA_HOME" ] ; then + if [ -r /etc/gentoo-release ] ; then + JAVA_HOME=`java-config --jre-home` + fi +fi + +if [ -z "$M2_HOME" ] ; then + ## resolve links - $0 may be a link to maven's home + PRG="$0" + + # need this for relative symlinks + while [ -h "$PRG" ] ; do + ls=`ls -ld "$PRG"` + link=`expr "$ls" : '.*-> \(.*\)$'` + if expr "$link" : '/.*' > /dev/null; then + PRG="$link" + else + PRG="`dirname "$PRG"`/$link" + fi + done + + saveddir=`pwd` + + M2_HOME=`dirname "$PRG"`/.. + + # make it fully qualified + M2_HOME=`cd "$M2_HOME" && pwd` + + cd "$saveddir" + # echo Using m2 at $M2_HOME +fi + +# For Cygwin, ensure paths are in UNIX format before anything is touched +if $cygwin ; then + [ -n "$M2_HOME" ] && + M2_HOME=`cygpath --unix "$M2_HOME"` + [ -n "$JAVA_HOME" ] && + JAVA_HOME=`cygpath --unix "$JAVA_HOME"` + [ -n "$CLASSPATH" ] && + CLASSPATH=`cygpath --path --unix "$CLASSPATH"` +fi + +# For Migwn, ensure paths are in UNIX format before anything is touched +if $mingw ; then + [ -n "$M2_HOME" ] && + M2_HOME="`(cd "$M2_HOME"; pwd)`" + [ -n "$JAVA_HOME" ] && + JAVA_HOME="`(cd "$JAVA_HOME"; pwd)`" + # TODO classpath? +fi + +if [ -z "$JAVA_HOME" ]; then + javaExecutable="`which javac`" + if [ -n "$javaExecutable" ] && ! [ "`expr \"$javaExecutable\" : '\([^ ]*\)'`" = "no" ]; then + # readlink(1) is not available as standard on Solaris 10. + readLink=`which readlink` + if [ ! `expr "$readLink" : '\([^ ]*\)'` = "no" ]; then + if $darwin ; then + javaHome="`dirname \"$javaExecutable\"`" + javaExecutable="`cd \"$javaHome\" && pwd -P`/javac" + else + javaExecutable="`readlink -f \"$javaExecutable\"`" + fi + javaHome="`dirname \"$javaExecutable\"`" + javaHome=`expr "$javaHome" : '\(.*\)/bin'` + JAVA_HOME="$javaHome" + export JAVA_HOME + fi + fi +fi + +if [ -z "$JAVACMD" ] ; then + if [ -n "$JAVA_HOME" ] ; then + if [ -x "$JAVA_HOME/jre/sh/java" ] ; then + # IBM's JDK on AIX uses strange locations for the executables + JAVACMD="$JAVA_HOME/jre/sh/java" + else + JAVACMD="$JAVA_HOME/bin/java" + fi + else + JAVACMD="`which java`" + fi +fi + +if [ ! -x "$JAVACMD" ] ; then + echo "Error: JAVA_HOME is not defined correctly." >&2 + echo " We cannot execute $JAVACMD" >&2 + exit 1 +fi + +if [ -z "$JAVA_HOME" ] ; then + echo "Warning: JAVA_HOME environment variable is not set." +fi + +CLASSWORLDS_LAUNCHER=org.codehaus.plexus.classworlds.launcher.Launcher + +# traverses directory structure from process work directory to filesystem root +# first directory with .mvn subdirectory is considered project base directory +find_maven_basedir() { + local basedir=$(pwd) + local wdir=$(pwd) + while [ "$wdir" != '/' ] ; do + if [ -d "$wdir"/.mvn ] ; then + basedir=$wdir + break + fi + wdir=$(cd "$wdir/.."; pwd) + done + echo "${basedir}" +} + +# concatenates all lines of a file +concat_lines() { + if [ -f "$1" ]; then + echo "$(tr -s '\n' ' ' < "$1")" + fi +} + +export MAVEN_PROJECTBASEDIR=${MAVEN_BASEDIR:-$(find_maven_basedir)} +MAVEN_OPTS="$(concat_lines "$MAVEN_PROJECTBASEDIR/.mvn/jvm.config") $MAVEN_OPTS" + +# For Cygwin, switch paths to Windows format before running java +if $cygwin; then + [ -n "$M2_HOME" ] && + M2_HOME=`cygpath --path --windows "$M2_HOME"` + [ -n "$JAVA_HOME" ] && + JAVA_HOME=`cygpath --path --windows "$JAVA_HOME"` + [ -n "$CLASSPATH" ] && + CLASSPATH=`cygpath --path --windows "$CLASSPATH"` + [ -n "$MAVEN_PROJECTBASEDIR" ] && + MAVEN_PROJECTBASEDIR=`cygpath --path --windows "$MAVEN_PROJECTBASEDIR"` +fi + +# Provide a "standardized" way to retrieve the CLI args that will +# work with both Windows and non-Windows executions. +MAVEN_CMD_LINE_ARGS="$MAVEN_CONFIG $@" +export MAVEN_CMD_LINE_ARGS + +WRAPPER_LAUNCHER=org.apache.maven.wrapper.MavenWrapperMain + +# avoid using MAVEN_CMD_LINE_ARGS below since that would loose parameter escaping in $@ +exec "$JAVACMD" \ + $MAVEN_OPTS \ + -classpath "$MAVEN_PROJECTBASEDIR/.mvn/wrapper/maven-wrapper.jar" \ + "-Dmaven.home=${M2_HOME}" "-Dmaven.multiModuleProjectDirectory=${MAVEN_PROJECTBASEDIR}" \ + ${WRAPPER_LAUNCHER} $MAVEN_CONFIG "$@" diff --git a/mvnw.cmd b/mvnw.cmd new file mode 100644 index 0000000..8bb8275 --- /dev/null +++ b/mvnw.cmd @@ -0,0 +1,146 @@ +@REM ---------------------------------------------------------------------------- +@REM Licensed to the Apache Software Foundation (ASF) under one +@REM or more contributor license agreements. See the NOTICE file +@REM distributed with this work for additional information +@REM regarding copyright ownership. The ASF licenses this file +@REM to you under the Apache License, Version 2.0 (the +@REM "License"); you may not use this file except in compliance +@REM with the License. You may obtain a copy of the License at +@REM +@REM http://www.apache.org/licenses/LICENSE-2.0 +@REM +@REM Unless required by applicable law or agreed to in writing, +@REM software distributed under the License is distributed on an +@REM "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY +@REM KIND, either express or implied. See the License for the +@REM specific language governing permissions and limitations +@REM under the License. +@REM ---------------------------------------------------------------------------- + +@REM ---------------------------------------------------------------------------- +@REM Maven2 Start Up Batch script +@REM +@REM Required ENV vars: +@REM JAVA_HOME - location of a JDK home dir +@REM +@REM Optional ENV vars +@REM M2_HOME - location of maven2's installed home dir +@REM MAVEN_BATCH_ECHO - set to 'on' to enable the echoing of the batch commands +@REM MAVEN_BATCH_PAUSE - set to 'on' to wait for a key stroke before ending +@REM MAVEN_OPTS - parameters passed to the Java VM when running Maven +@REM e.g. to debug Maven itself, use +@REM set MAVEN_OPTS=-Xdebug -Xrunjdwp:transport=dt_socket,server=y,suspend=y,address=8000 +@REM MAVEN_SKIP_RC - flag to disable loading of mavenrc files +@REM ---------------------------------------------------------------------------- + +@REM Begin all REM lines with '@' in case MAVEN_BATCH_ECHO is 'on' +@echo off +@REM enable echoing my setting MAVEN_BATCH_ECHO to 'on' +@if "%MAVEN_BATCH_ECHO%" == "on" echo %MAVEN_BATCH_ECHO% + +@REM set %HOME% to equivalent of $HOME +if "%HOME%" == "" (set "HOME=%HOMEDRIVE%%HOMEPATH%") + +@REM Execute a user defined script before this one +if not "%MAVEN_SKIP_RC%" == "" goto skipRcPre +@REM check for pre script, once with legacy .bat ending and once with .cmd ending +if exist "%HOME%\mavenrc_pre.bat" call "%HOME%\mavenrc_pre.bat" +if exist "%HOME%\mavenrc_pre.cmd" call "%HOME%\mavenrc_pre.cmd" +:skipRcPre + +@setlocal + +set ERROR_CODE=0 + +@REM To isolate internal variables from possible post scripts, we use another setlocal +@setlocal + +@REM ==== START VALIDATION ==== +if not "%JAVA_HOME%" == "" goto OkJHome + +echo. +echo Error: JAVA_HOME not found in your environment. >&2 +echo Please set the JAVA_HOME variable in your environment to match the >&2 +echo location of your Java installation. >&2 +echo. +goto error + +:OkJHome +if exist "%JAVA_HOME%\bin\java.exe" goto init + +echo. +echo Error: JAVA_HOME is set to an invalid directory. >&2 +echo JAVA_HOME = "%JAVA_HOME%" >&2 +echo Please set the JAVA_HOME variable in your environment to match the >&2 +echo location of your Java installation. >&2 +echo. +goto error + +@REM ==== END VALIDATION ==== + +:init + +set MAVEN_CMD_LINE_ARGS=%MAVEN_CONFIG% %* + +@REM Find the project base dir, i.e. the directory that contains the folder ".mvn". +@REM Fallback to current working directory if not found. + +set MAVEN_PROJECTBASEDIR=%MAVEN_BASEDIR% +IF NOT "%MAVEN_PROJECTBASEDIR%"=="" goto endDetectBaseDir + +set EXEC_DIR=%CD% +set WDIR=%EXEC_DIR% +:findBaseDir +IF EXIST "%WDIR%"\.mvn goto baseDirFound +cd .. +IF "%WDIR%"=="%CD%" goto baseDirNotFound +set WDIR=%CD% +goto findBaseDir + +:baseDirFound +set MAVEN_PROJECTBASEDIR=%WDIR% +cd "%EXEC_DIR%" +goto endDetectBaseDir + +:baseDirNotFound +set MAVEN_PROJECTBASEDIR=%EXEC_DIR% +cd "%EXEC_DIR%" + +:endDetectBaseDir + +IF NOT EXIST "%MAVEN_PROJECTBASEDIR%\.mvn\jvm.config" goto endReadAdditionalConfig + +@setlocal EnableExtensions EnableDelayedExpansion +for /F "usebackq delims=" %%a in ("%MAVEN_PROJECTBASEDIR%\.mvn\jvm.config") do set JVM_CONFIG_MAVEN_PROPS=!JVM_CONFIG_MAVEN_PROPS! %%a +@endlocal & set JVM_CONFIG_MAVEN_PROPS=%JVM_CONFIG_MAVEN_PROPS% + +:endReadAdditionalConfig + +SET MAVEN_JAVA_EXE="%JAVA_HOME%\bin\java.exe" + +set WRAPPER_JAR=""%MAVEN_PROJECTBASEDIR%\.mvn\wrapper\maven-wrapper.jar"" +set WRAPPER_LAUNCHER=org.apache.maven.wrapper.MavenWrapperMain + +# avoid using MAVEN_CMD_LINE_ARGS below since that would loose parameter escaping in %* +%MAVEN_JAVA_EXE% %JVM_CONFIG_MAVEN_PROPS% %MAVEN_OPTS% %MAVEN_DEBUG_OPTS% -classpath %WRAPPER_JAR% "-Dmaven.multiModuleProjectDirectory=%MAVEN_PROJECTBASEDIR%" %WRAPPER_LAUNCHER% %MAVEN_CONFIG% %* +if ERRORLEVEL 1 goto error +goto end + +:error +set ERROR_CODE=1 + +:end +@endlocal & set ERROR_CODE=%ERROR_CODE% + +if not "%MAVEN_SKIP_RC%" == "" goto skipRcPost +@REM check for post script, once with legacy .bat ending and once with .cmd ending +if exist "%HOME%\mavenrc_post.bat" call "%HOME%\mavenrc_post.bat" +if exist "%HOME%\mavenrc_post.cmd" call "%HOME%\mavenrc_post.cmd" +:skipRcPost + +@REM pause the script if MAVEN_BATCH_PAUSE is set to 'on' +if "%MAVEN_BATCH_PAUSE%" == "on" pause + +if "%MAVEN_TERMINATE_CMD%" == "on" exit %ERROR_CODE% + +exit /B %ERROR_CODE% diff --git a/pom.xml b/pom.xml index f3bc50e..1f701bf 100644 --- a/pom.xml +++ b/pom.xml @@ -5,7 +5,7 @@ net.kemitix kemitix-parent - 2.8.0 + 3.0.0 pom Kemitix Parent @@ -17,9 +17,9 @@ + https://github.com/kemitix/kemitix-parent scm:git:git@github.com:kemitix/kemitix-parent.git scm:git:git@github.com:kemitix/kemitix-parent.git - git@github.com:kemitix/kemitix-parent.git https://github.com/kemitix/kemitix-parent @@ -41,14 +41,10 @@ UTF-8 UTF-8 target - 2.3.0 + 3.1.0 5-complexity 1.16.16 - 1.5.2.RELEASE - Brussels-SR2 - Dalston.RELEASE - Ingalls-SR3 0.9.0 net.kemitix @@ -60,16 +56,21 @@ 3.6.1 2.20 2.20 - 3.7 + 3.8 0.0.11 0.7.9 1.2 + 1.2.0 2.5 0.50 0.80 0 1.8 + 0 + 0 + false + true @@ -81,32 +82,6 @@ - - - - io.spring.platform - platform-bom - ${spring-platform.version} - pom - import - - - org.springframework.cloud - spring-cloud-dependencies - ${spring-cloud.version} - pom - import - - - org.springframework.data - spring-data-releasetrain - ${spring-data.version} - pom - import - - - - org.projectlombok @@ -204,11 +179,6 @@ false - - sevntu-maven - sevntu-maven - http://sevntu-checkstyle.github.io/sevntu.checkstyle/maven2 - @@ -223,10 +193,13 @@ verify - ${kemitix-checkstyle-ruleset.level} + check + + ${kemitix-checkstyle-ruleset.level} + net.kemitix @@ -393,6 +366,28 @@ + + + org.pitest + pitest-maven + ${pitest.version} + + + verify + + mutationCoverage + + + + + ${pitest.skip} + false + *.Immutable* + ${pitest.coverage} + ${pitest.mutation} + ${pitest.failWhenNoMutations} + + @@ -422,6 +417,18 @@ true + + org.pitest + pitest-maven + ${pitest.version} + + + + report + + + + diff --git a/travis-ci/codesigning.asc.enc b/travis-ci/codesigning.asc.enc new file mode 100644 index 0000000..27b9e64 Binary files /dev/null and b/travis-ci/codesigning.asc.enc differ diff --git a/travis-ci/travis-deploy.sh b/travis-ci/travis-deploy.sh new file mode 100755 index 0000000..e01a265 --- /dev/null +++ b/travis-ci/travis-deploy.sh @@ -0,0 +1,18 @@ +#!/usr/bin/env bash + +if [ "$TRAVIS_BRANCH" = 'master' ]; then + echo "Preparing to deploy to nexus..." + openssl aes-256-cbc -K $encrypted_f424d6efdd6f_key -iv $encrypted_f424d6efdd6f_iv \ + -in travis-ci/codesigning.asc.enc -out travis-ci/codesigning.asc -d + echo "Signing key decrypted" + gpg --batch --fast-import travis-ci/codesigning.asc + echo "Signing key imported" + ./mvnw --settings travis-ci/travis-settings.xml \ + -Dskip-Tests=true -P release -B deploy + echo "Deploy complete" +else + echo "Not deploying" + echo " TRAVIS_BRANCH: $TRAVIS_BRANCH" + echo " TRAVIS_PULL_REQUEST: $TRAVIS_PULL_REQUEST" +fi + diff --git a/travis-ci/travis-settings.xml b/travis-ci/travis-settings.xml new file mode 100644 index 0000000..e2d8c63 --- /dev/null +++ b/travis-ci/travis-settings.xml @@ -0,0 +1,28 @@ + + + + + sonatype-nexus-snapshots + kemitix + ${env.CI_DEPLOY_PASSWORD} + + + sonatype-nexus-staging + kemitix + ${env.CI_DEPLOY_PASSWORD} + + + + + gpg-sign + + true + + + gpg + ${env.CI_DEPLOY_GPG_KEYNAME} + ${env.CI_DEPLOY_GPG_PASSPHRASE} + + + +