You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@sling.apache.org by ro...@apache.org on 2019/02/28 13:48:57 UTC
[sling-ide-tooling] 02/02: SLING-7597 - Investigate setting up
Windows testing
This is an automated email from the ASF dual-hosted git repository.
rombert pushed a commit to branch master
in repository https://gitbox.apache.org/repos/asf/sling-ide-tooling.git
commit f275a4a61d4182fb53229c914aa6578879969d79
Author: Robert Munteanu <ro...@apache.org>
AuthorDate: Tue Feb 26 22:02:43 2019 +0100
SLING-7597 - Investigate setting up Windows testing
Run Windows tests on Jenkins alongside the Linux ones, using a parallel
execution for minimising delays.
---
Jenkinsfile | 69 ++++++++++++++++++++++++++++++++++++++++++++++---------------
1 file changed, 52 insertions(+), 17 deletions(-)
diff --git a/Jenkinsfile b/Jenkinsfile
index 539cd9d..8de6f29 100644
--- a/Jenkinsfile
+++ b/Jenkinsfile
@@ -4,39 +4,43 @@ def mvnVersion = 'Maven 3.3.9'
def javaVersion = 'JDK 1.8 (latest)'
node('ubuntu') {
-
def helper = new SlingJenkinsHelper()
helper.runWithErrorHandling({ jobConfig ->
+ parallel 'linux': generateStages('linux', mvnVersion, javaVersion),
+ 'windows': generateStages('windows', mvnVersion, javaVersion)
+ })
+}
+
+// generates os-specific stages
+def generateStages(String os, def mvnVersion, def javaVersion) {
+ def isWindows = os == "windows"
+ def prefix = isWindows ? "win" : "linux"
- stage('Build shared code') {
+ def stages = [
+ "[$prefix] Build shared code": {
withMaven(maven: mvnVersion, jdk: javaVersion, options: [artifactsPublisher(disabled: true)]) {
timeout(10) {
- sh "mvn -f shared/modules clean install"
+ runCmd "mvn -f shared/modules clean install"
}
}
- }
-
- stage('Build CLI bundles') {
+ }, "[$prefix] Build CLI bundles": {
withMaven(maven: mvnVersion, jdk: javaVersion, options: [artifactsPublisher(disabled: true)]) {
timeout(10) {
- sh "mvn -f cli clean install"
+ runCmd "mvn -f cli clean install"
}
}
- }
-
- stage ('Build shared code P2 repository') {
+ }, "[$prefix] Build shared code P2 repository": {
withMaven(maven: mvnVersion, jdk: javaVersion, options: [artifactsPublisher(disabled: true)]) {
timeout(10) {
- sh 'mvn -f shared/p2 clean package'
+ runCmd 'mvn -f shared/p2 clean package'
}
}
- }
-
- stage ('Build Eclipse plug-ins') {
+ }, "[$prefix] Build Eclipse plug-ins": {
withMaven(maven: mvnVersion, jdk: javaVersion, options: [artifactsPublisher(disabled: true)]) {
timeout(20) {
- wrap([$class: 'Xvfb']) {
- sh 'mvn -f eclipse clean verify -Ddebug'
+ // workaround for https://issues.jenkins-ci.org/browse/JENKINS-39415
+ wrap([$class: 'Xvfb', autoDisplayName: true]) {
+ runCmd 'mvn -f eclipse clean verify'
}
// workaround for https://issues.jenkins-ci.org/browse/JENKINS-55889
junit 'eclipse/**/surefire-reports/*.xml'
@@ -44,5 +48,36 @@ node('ubuntu') {
}
}
}
- });
+ ]
+
+ // avoid wrapping Linux nodes again in node() context since that seems to make the
+ // SCM checkout unavailable
+ if ( isWindows ) {
+ return {
+ node("Windows") {
+ checkout scm
+ stages.each { name, body ->
+ stage(name) {
+ body.call()
+ }
+ }
+ }
+ }
+ }
+
+ return {
+ stages.each { name, body ->
+ stage(name) {
+ body.call()
+ }
+ }
+ }
+}
+
+def runCmd(def cmd) {
+ if (isUnix() ) {
+ sh cmd
+ } else {
+ bat cmd
+ }
}