diff --git a/Jenkinsfile b/Jenkinsfile new file mode 100644 index 0000000..10433d0 --- /dev/null +++ b/Jenkinsfile @@ -0,0 +1,91 @@ +pipeline { + agent none + triggers { pollSCM('H/15 * * * *') } + tools { + maven 'Maven 3.5.3' + jdk 'OpenJDK 9' + } + options { buildDiscarder(logRotator(numToKeepStr: '5')) } + stages { + stage('Build natives') { + parallel { + stage('Build Windows natives') { + agent { + label "windows" + } + steps { + bat 'mvn -B -am -pl plugins/windows/,plugins/wintab/ clean compile' + } + post { + success { + stash includes: 'plugins/**/target/natives/*.dll', name: 'windows-natives' + } + } + } + stage('Build Linux natives') { + agent { + label "linux" + } + steps { + sh 'mvn -B -am -pl plugins/linux/ clean compile' + } + post { + success { + stash includes: 'plugins/**/target/natives/*.so*', name: 'linux-natives' + } + } + } + stage('Build OSX natives') { + agent { + label "osx" + } + steps { + sh 'mvn -B -am -pl plugins/OSX/ clean compile' + } + post { + success { + stash includes: '**/target/natives/*.jnilib', name: 'osx-natives' + } + } + } + } + } + stage('Build') { + agent { + label "linux" + } + steps { + unstash 'windows-natives' + unstash 'osx-natives' + unstash 'linux-natives' + sh 'mvn -B -P windows,linux,osx,wintab -Dmaven.antrun.skip -Dmaven.javadoc.skip -Dmaven.source.skip -Dmaven.test.skip -DskipTests -DskipITs package' + } + post { + success { + stash includes: '**/target/*.jar', name: 'all-java-jars' + archiveArtifacts artifacts: '**/target/*.jar*', fingerprint: true + } + } + } + stage('Deploy') { + agent { + label "linux" + } + steps { + unstash 'windows-natives' + unstash 'osx-natives' + unstash 'linux-natives' + sh 'echo $GPG_SECRET_KEYS | base64 --decode | gpg --batch --import' + sh 'echo $GPG_OWNERTRUST | base64 --decode | gpg --import-ownertrust' + withMaven( + maven: 'Maven 3.5.3', + jdk: 'OpenJDK 9', + globalMavenSettingsConfig: 'global-maven-settings-ossrh', + mavenOpts: '-Djavax.net.ssl.trustStore=/etc/ssl/certs/java/cacerts' //Work around for JDK9 missing cacerts + ) { + sh "mvn -P windows,linux,osx,wintab -Dmaven.antrun.skip -Dmaven.test.skip -DskipTests -DskipITs deploy" + } + } + } + } +} \ No newline at end of file diff --git a/examples/pom.xml b/examples/pom.xml index 990d916..3ce0cef 100644 --- a/examples/pom.xml +++ b/examples/pom.xml @@ -11,28 +11,65 @@ ../ + + + central-snapshots + https://oss.sonatype.org/content/repositories/snapshots + false + true + + + net.java.jinput coreapi ${project.version} - - + + ${project.groupId} + windows-plugin + ${project.version} + natives-windows + + + ${project.groupId} + osx-plugin + ${project.version} + natives-osx + + + ${project.groupId} + wintab-plugin + ${project.version} + natives-wintab + + + ${project.groupId} + linux-plugin + ${project.version} + natives-linux + + + ${project.groupId} + windows-plugin + ${project.version} + + + ${project.groupId} + osx-plugin + ${project.version} + + + ${project.groupId} + wintab-plugin + ${project.version} + + + ${project.groupId} + linux-plugin + ${project.version} + @@ -51,93 +88,6 @@ - - linux - - - linux - - - - - ${project.groupId} - linux-plugin - ${project.version} - natives-linux - - - ${project.groupId} - linux-plugin - ${project.version} - - - - - osx - - - mac - - - - - ${project.groupId} - osx-plugin - ${project.version} - natives-osx - - - ${project.groupId} - osx-plugin - ${project.version} - - - - - windows - - - windows - - - - - ${project.groupId} - windows-plugin - ${project.version} - natives-windows - - - ${project.groupId} - windows-plugin - ${project.version} - - - - - wintab - - - windows - - - env.WINTABSDKDIR - - - - - ${project.groupId} - wintab-plugin - ${project.version} - natives-wintab - - - ${project.groupId} - wintab-plugin - ${project.version} - - - ReadAllEvents diff --git a/plugins/pom.xml b/plugins/pom.xml index e003dc5..9cd4b0a 100644 --- a/plugins/pom.xml +++ b/plugins/pom.xml @@ -17,7 +17,7 @@ - Linux + linux linux @@ -28,7 +28,7 @@ - Windows + windows windows @@ -39,7 +39,7 @@ - OSX + osx mac diff --git a/pom.xml b/pom.xml index 38b97c2..b4fb428 100644 --- a/pom.xml +++ b/pom.xml @@ -26,6 +26,17 @@ scm:git:https://github.com/jinput/jinput.git + + + ossrh + https://oss.sonatype.org/content/repositories/snapshots + + + ossrh + https://oss.sonatype.org/service/local/staging/deploy/maven2/ + + + UTF-8 1.6 @@ -119,35 +130,31 @@ + + + maven-gpg-plugin + 1.6 + + + sign-artifacts + verify + + sign + + + + + + org.sonatype.plugins + nexus-staging-maven-plugin + 1.6.8 + true + + ossrh + https://oss.sonatype.org/ + true + + + - - - - release-sign-artifacts - - - performRelease - true - - - - - - org.apache.maven.plugins - maven-gpg-plugin - 1.1 - - - sign-artifacts - verify - - sign - - - - - - - - \ No newline at end of file