فهرست منبع

ZOOKEEPER-3896: Added separate Jenkinsfile for PreCommit jobs + disable concurrent builds

Further improvements to our Jenkinsfiles.

Author: Andor Molnar <andor@apache.org>

Reviewers: Enrico Olivelli <eolivelli@apache.org>

Closes #1416 from anmolnar/ZOOKEEPER-3896
Andor Molnar 4 سال پیش
والد
کامیت
2898ffddb0
2فایلهای تغییر یافته به همراه68 افزوده شده و 8 حذف شده
  1. 6 8
      Jenkinsfile
  2. 62 0
      Jenkinsfile-PreCommit

+ 6 - 8
Jenkinsfile

@@ -17,11 +17,15 @@
  */
 
 pipeline {
-   agent none
+    agent {
+        label 'Hadoop'
+    }
 
     options {
+        disableConcurrentBuilds()
         buildDiscarder(logRotator(daysToKeepStr: '14'))
-        timeout(time: 59, unit: 'MINUTES')
+        timeout(time: 2, unit: 'HOURS')
+        timestamps()
     }
 
     triggers {
@@ -40,7 +44,6 @@ pipeline {
                 }
 
                 tools {
-                    // Install the Maven version configured as "M3" and add it to the path.
                     maven "Maven (latest)"
                     jdk "${JAVA_VERSION}"
                 }
@@ -48,15 +51,10 @@ pipeline {
                 stages {
                     stage('BuildAndTest') {
                         steps {
-                            // Get some code from a GitHub repository
                             git 'https://github.com/apache/zookeeper'
-
-                            // Run Maven on a Unix agent.
                             sh "mvn verify spotbugs:check checkstyle:check -Pfull-build -Dsurefire-forkcount=4"
                         }
                         post {
-                            // If Maven was able to run the tests, even if some of the test
-                            // failed, record the test results and archive the jar file.
                             always {
                                junit '**/target/surefire-reports/TEST-*.xml'
                                archiveArtifacts '**/target/*.jar'

+ 62 - 0
Jenkinsfile-PreCommit

@@ -0,0 +1,62 @@
+/*
+ * 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.
+ */
+
+pipeline {
+    agent {
+        label 'Hadoop'
+    }
+
+    options {
+        disableConcurrentBuilds()
+        buildDiscarder(logRotator(daysToKeepStr: '14'))
+        timeout(time: 2, unit: 'HOURS')
+        timestamps()
+    }
+
+    tools {
+        maven "Maven (latest)"
+        jdk "JDK 1.8 (latest)"
+    }
+
+    stages {
+        stage('BuildAndTest') {
+            steps {
+                git 'https://github.com/apache/zookeeper'
+                sh "mvn verify spotbugs:check checkstyle:check -Pfull-build -Dsurefire-forkcount=4"
+            }
+            post {
+                always {
+                   junit '**/target/surefire-reports/TEST-*.xml'
+                }
+            }
+        }
+    }
+
+    post {
+        // Jenkins pipeline jobs fill slaves on PRs without this :(
+        cleanup() {
+            script {
+                sh label: 'Cleanup workspace', script: '''
+                    # See HADOOP-13951
+                    chmod -R u+rxw "${WORKSPACE}"
+                    '''
+                deleteDir()
+            }
+        }
+    }
+}