Test more declarative
diff --git a/vars/asfMainNetBeansBuild.groovy b/vars/asfMainNetBeansBuild.groovy
index ae81f80..ad13a16 100644
--- a/vars/asfMainNetBeansBuild.groovy
+++ b/vars/asfMainNetBeansBuild.groovy
@@ -53,13 +53,14 @@
options {
buildDiscarder(logRotator(numToKeepStr: '2'))
disableConcurrentBuilds()
+ timeout(time: 180, unit: 'MINUTES')
}
agent { node { label 'ubuntu' } }
- stages{
- stage("Preparing Variable"){
- agent { node { label 'ubuntu' } }
- options { timeout(time: 180, unit: 'MINUTES') }
- steps{
+
+ stages {
+ stage("Preparing Variable") {
+ //agent { node { label 'ubuntu' } }
+ steps {
script {
// test if we can do that
sh 'curl "https://gitbox.apache.org/repos/asf?p=netbeans-jenkins-lib.git;a=blob_plain;f=meta/netbeansrelease.json" -o netbeansrelease.json'
@@ -120,56 +121,125 @@
}
}
}
- }
+ }
}
- stage ("Main build") {
+ stage ('Master build') {
tools {
jdk tooling.jdktool
+ }
+ when {
+ branch 'master'
}
- steps {
- withAnt(installation: tooling.myAnt) {
- script {
- //sh 'ant'
- if (env.BRANCH_NAME=="master") {
- // on master we build apidoc + populating snapshot repository
- // should be on line for each otherwise cluster are wrong
+ stages {
+ stage ('build javadoc') {
+ steps {
+ withAnt(installation: tooling.myAnt) {
sh "ant download-all-extbins"
sh "ant build-nbms"
sh "ant build-source-zips"
sh "ant build-javadoc -Djavadoc.web.zip=${env.WORKSPACE}/WEBZIP.zip"
- //sh "rm -rf ${env.WORKSPACE}/repoindex/"
- sh "rm -rf ${env.WORKSPACE}/.repository"
- def localRepo = "${env.WORKSPACE}/.repository"
- def netbeansbase = "nbbuild"
- withMaven(maven:tooling.myMaven,jdk:tooling.jdktool,publisherStrategy: 'EXPLICIT',mavenLocalRepo: localRepo)
- {
- sh "mvn org.apache.maven.plugins:maven-dependency-plugin:3.1.1:get -Dartifact=org.apache.netbeans.utilities:nb-repository-plugin:1.6-SNAPSHOT -DremoteRepositories=apache.snapshots.https::::https://repository.apache.org/snapshots"
- def commonparam = "-Dexternallist=${netbeansbase}/build/external.info"
-
- //sh "mvn org.apache.netbeans.utilities:nb-repository-plugin:1.5:download -DnexusIndexDirectory=${env.WORKSPACE}/repoindex -DrepositoryUrl=https://repo.maven.apache.org/maven2"
- sh "mvn org.apache.netbeans.utilities:nb-repository-plugin:1.6-SNAPSHOT:populate ${commonparam} -DnetbeansNbmDirectory=${netbeansbase}/nbms -DnetbeansInstallDirectory=${netbeansbase}/netbeans -DnetbeansSourcesDirectory=${netbeansbase}/build/source-zips -DnetbeansJavadocDirectory=${netbeansbase}/build/javadoc -DparentGAV=org.apache.netbeans:netbeans-parent:2 -DforcedVersion=${mavenVersion} -DskipInstall=true -DdeployId=apache.snapshots.https -DdeployUrl=https://repository.apache.org/content/repositories/snapshots"
- }
archiveArtifacts 'WEBZIP.zip'
- } else if (month !='Invalid') {
- // we have a valid month, this package is already released. Build only javadoc
+ }
+ }
+ }
+ stage (' Populate Snapshots') {
+ when {
+ // thursday
+ expression { return Calendar.instance.get(Calendar.HOUR_OF_DAY) == 1 && Calendar.instance.get(Calendar.DAY_OF_WEEK) == 3}
+ }
+ steps {
+ withAnt(installation: tooling.myAnt) {
+ script {
+ def localRepo = "${env.WORKSPACE}/.repository"
+ def netbeansbase = "nbbuild"
+ def commonparam = "-Dexternallist=${netbeansbase}/build/external.info"
+
+ sh "rm -rf ${env.WORKSPACE}/.repository"
+ withMaven(maven:tooling.myMaven,jdk:tooling.jdktool,publisherStrategy: 'EXPLICIT',mavenLocalRepo: localRepo)
+ {
+ sh "mvn org.apache.maven.plugins:maven-dependency-plugin:3.1.1:get -Dartifact=org.apache.netbeans.utilities:nb-repository-plugin:1.6-SNAPSHOT -DremoteRepositories=apache.snapshots.https::::https://repository.apache.org/snapshots"
+
+ //sh "mvn org.apache.netbeans.utilities:nb-repository-plugin:1.5:download -DnexusIndexDirectory=${env.WORKSPACE}/repoindex -DrepositoryUrl=https://repo.maven.apache.org/maven2"
+ sh "mvn org.apache.netbeans.utilities:nb-repository-plugin:1.6-SNAPSHOT:populate ${commonparam} -DnetbeansNbmDirectory=${netbeansbase}/nbms -DnetbeansInstallDirectory=${netbeansbase}/netbeans -DnetbeansSourcesDirectory=${netbeansbase}/build/source-zips -DnetbeansJavadocDirectory=${netbeansbase}/build/javadoc -DparentGAV=org.apache.netbeans:netbeans-parent:2 -DforcedVersion=${mavenVersion} -DskipInstall=true -DdeployId=apache.snapshots.https -DdeployUrl=https://repository.apache.org/content/repositories/snapshots"
+ }
+ }
+ }
+ }
+
+ }
+ //}
+ }
+
+ }
+ stage ('Released javadoc rebuild') {
+ tools {
+ jdk tooling.jdktool
+ }
+ when {
+ allOf {
+ branch pattern : "release\\d+",comparator:"REGEXP"
+ expression { month !='Invalid'}
+ }
+
+ }
+ stages {
+ stage ('Archive Javadoc') {
+ steps {
+
+ withAnt(installation: tooling.myAnt) {
sh "ant"
sh "ant build-javadoc -Djavadoc.web.zip=${env.WORKSPACE}/WEBZIP.zip"
- archiveArtifacts 'WEBZIP.zip'
- } else {
- // we want to setup for release
- // apidoc + repomaven + dist bundle
- def clusterconfigs = [['platform','netbeans-platform'],['release','netbeans']]
-
- if (votecandidate) {
- versionpath = "${version}/vc${vote}"
- }
- doParallelClusters(clusterconfigs);
}
- }
- }
+ archiveArtifacts 'WEBZIP.zip'
+
+ }
+ }
+ }
+
+ }
+ stage ('Release preparation') {
+ tools {
+ jdk tooling.jdktool
+ }
+ when {
+ allOf {
+ branch pattern : "release\\d+",comparator:"REGEXP"
+ expression { month =='Invalid' }
+ }
+ }
+ steps {
+ script {
+
+ def clusterconfigs = [['platform','netbeans-platform'],['release','netbeans']]
+
+ if (votecandidate) {
+ versionpath = "${version}/vc${vote}"
+ }
+ doParallelClusters(clusterconfigs);
+ }
}
}
+ /*steps {
+ withAnt(installation: tooling.myAnt) {
+ script {
+ //sh 'ant'
+ if (env.BRANCH_NAME=="master") {
+ // on master we build apidoc + populating snapshot repository
+ // should be on line for each otherwise cluster are wrong
+ //sh "rm -rf ${env.WORKSPACE}/repoindex/"
+ } else if (month !='Invalid') {
+ // we have a valid month, this package is already released. Build only javadoc
+ } else {
+ // we want to setup for release
+ // apidoc + repomaven + dist bundle
+
+ }
+ }
+ }
+ }*/
}
+
+
post {
cleanup {
cleanWs() // deleteDirs: true, notFailBuild: true, patterns: [[pattern: '**/.repository/**', type: 'INCLUDE']]