This is an automated email from the ASF dual-hosted git repository.

zhaijia pushed a commit to branch master
in repository https://gitbox.apache.org/repos/asf/bookkeeper.git


The following commit(s) were added to refs/heads/master by this push:
     new 2b7b24d  Manage all the jenkins jobs using jenkins-dsl
2b7b24d is described below

commit 2b7b24dc569483bd0231e9cd1f2b9a14cc612045
Author: Sijie Guo <[email protected]>
AuthorDate: Mon Dec 18 09:45:33 2017 +0800

    Manage all the jenkins jobs using jenkins-dsl
    
    Descriptions of the changes in this PR:
    
    - use jenkins-dsl to manage all the bookkeeper jobs
    - the seed job will poll the files checked in under `.test-infra/jenkins` 
at master and automatically update other jenkins jobs
    - this enforces all the jenkins jobs' changes should go through github 
reviews and allows everyone can make changes to jenkins jobs.
    
    Author: Sijie Guo <[email protected]>
    
    Reviewers: Enrico Olivelli <[email protected]>, Jia Zhai <None>
    
    This closes #866 from sijie/test_infra_jenkins_dsl
---
 .test-infra/jenkins/common_job_properties.groovy   | 259 +++++++++++++++++++++
 ...bookkeeper_postcommit_master_jdkversions.groovy |  57 +++++
 .../job_bookkeeper_postcommit_website.groovy       |  87 +++++++
 .../job_bookkeeper_precommit_pullrequest.groovy    |  54 +++++
 .../jenkins/job_bookkeeper_release_branch.groovy   |  47 ++++
 .../job_bookkeeper_release_nightly_snapshot.groovy |  45 ++++
 .test-infra/jenkins/job_seed.groovy                |  51 ++++
 jenkins/README.md                                  |  65 ------
 jenkins/bookkeeper-master-job-configuration.yaml   |  60 -----
 jenkins/jenkins_jobs.ini                           |  28 ---
 10 files changed, 600 insertions(+), 153 deletions(-)

diff --git a/.test-infra/jenkins/common_job_properties.groovy 
b/.test-infra/jenkins/common_job_properties.groovy
new file mode 100644
index 0000000..90813db
--- /dev/null
+++ b/.test-infra/jenkins/common_job_properties.groovy
@@ -0,0 +1,259 @@
+/*
+ * 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.
+ */
+
+// Contains functions that help build Jenkins projects. Functions typically set
+// common properties that are shared among all Jenkins projects.
+// Code in this directory should conform to the Groovy style guide.
+//  http://groovy-lang.org/style-guide.html
+class common_job_properties {
+
+  // Sets common top-level job properties for website repository jobs.
+  static void setTopLevelWebsiteJobProperties(context,
+                                              String branch = 'master') {
+    // GitHub project.
+    context.properties {
+      githubProjectUrl('https://[email protected]/apache/bookkeeper/')
+    }
+
+    setTopLevelJobProperties(
+            context,
+            'https://gitbox.apache.org/repos/asf/bookkeeper.git',
+            branch,
+            'git-websites',
+            30)
+  }
+
+  // Sets common top-level job properties for main repository jobs.
+  static void setTopLevelMainJobProperties(context,
+                                           String branch = 'master',
+                                           int timeout = 100,
+                                           String jenkinsExecutorLabel = 
'ubuntu') {
+    // GitHub project.
+    context.properties {
+      githubProjectUrl('https://github.com/apache/bookkeeper/')
+    }
+
+
+    setTopLevelJobProperties(
+            context,
+            'https://github.com/apache/bookkeeper.git',
+            branch,
+            jenkinsExecutorLabel,
+            timeout)
+  }
+
+  // Sets common top-level job properties. Accessed through one of the above
+  // methods to protect jobs from internal details of param defaults.
+  private static void setTopLevelJobProperties(context,
+                                               String scmUrl,
+                                               String defaultBranch,
+                                               String jenkinsExecutorLabel,
+                                               int defaultTimeout) {
+    // Set JDK version.
+    context.jdk('JDK 1.8 (latest)')
+
+    // Restrict this project to run only on Jenkins executors as specified
+    context.label(jenkinsExecutorLabel)
+
+    // Discard old builds. Build records are only kept up to this number of 
days.
+    context.logRotator {
+      daysToKeep(14)
+    }
+
+    // Source code management.
+    context.scm {
+      git {
+        remote {
+          url(scmUrl)
+          refspec('+refs/heads/*:refs/remotes/origin/* ' +
+                  
'+refs/pull/${ghprbPullId}/*:refs/remotes/origin/pr/${ghprbPullId}/*')
+        }
+        branch('${sha1}')
+        extensions {
+          cleanAfterCheckout()
+        }
+      }
+    }
+
+    context.parameters {
+      // This is a recommended setup if you want to run the job manually. The
+      // ${sha1} parameter needs to be provided, and defaults to the main 
branch.
+      stringParam(
+          'sha1',
+          defaultBranch,
+          'Commit id or refname (eg: origin/pr/9/head) you want to build.')
+    }
+
+    context.wrappers {
+      // Abort the build if it's stuck for more minutes than specified.
+      timeout {
+        absolute(defaultTimeout)
+        abortBuild()
+      }
+
+      credentialsBinding {
+        string("COVERALLS_REPO_TOKEN", "bookkeeper-coveralls-token")
+      }
+    }
+  }
+
+  // Sets the pull request build trigger. Accessed through precommit methods
+  // below to insulate callers from internal parameter defaults.
+  private static void setPullRequestBuildTrigger(context,
+                                                 String commitStatusContext,
+                                                 String successComment = 
'--none--',
+                                                 String prTriggerPhrase = '') {
+    context.triggers {
+      githubPullRequest {
+        admins(['asfbot'])
+        useGitHubHooks()
+        orgWhitelist(['apache'])
+        allowMembersOfWhitelistedOrgsAsAdmin()
+        permitAll()
+        // prTriggerPhrase is the argument which gets set when we want to allow
+        // post-commit builds to run against pending pull requests. This block
+        // overrides the default trigger phrase with the new one. Setting this
+        // will disable automatic invocation of this build; the phrase will be
+        // required to start it.
+        if (prTriggerPhrase) {
+          triggerPhrase(prTriggerPhrase)
+          onlyTriggerPhrase()
+        }
+
+        extensions {
+          commitStatus {
+            // This is the name that will show up in the GitHub pull request UI
+            // for this Jenkins project.
+            delegate.context("Jenkins: " + commitStatusContext)
+          }
+
+          /*
+            This section is disabled, because of jenkinsci/ghprb-plugin#417 
issue.
+            For the time being, an equivalent configure section below is added.
+
+          // Comment messages after build completes.
+          buildStatus {
+            completedStatus('SUCCESS', successComment)
+            completedStatus('FAILURE', '--none--')
+            completedStatus('ERROR', '--none--')
+          }
+          */
+        }
+      }
+    }
+
+    // Comment messages after build completes.
+    context.configure {
+      def messages = it / triggers / 
'org.jenkinsci.plugins.ghprb.GhprbTrigger' / extensions / 
'org.jenkinsci.plugins.ghprb.extensions.comments.GhprbBuildStatus' / messages
+      messages << 
'org.jenkinsci.plugins.ghprb.extensions.comments.GhprbBuildResultMessage' {
+        message(successComment)
+        result('SUCCESS')
+      }
+      messages << 
'org.jenkinsci.plugins.ghprb.extensions.comments.GhprbBuildResultMessage' {
+        message('--none--')
+        result('ERROR')
+      }
+      messages << 
'org.jenkinsci.plugins.ghprb.extensions.comments.GhprbBuildResultMessage' {
+        message('--none--')
+        result('FAILURE')
+      }
+    }
+  }
+
+  // Sets common config for Maven jobs.
+  static void setMavenConfig(context, mavenInstallation='Maven 3.5.0', 
mavenOpts='-Xmx4096m -Xms2048m') {
+    context.mavenInstallation(mavenInstallation)
+    context.mavenOpts('-Dorg.slf4j.simpleLogger.showDateTime=true')
+    
context.mavenOpts('-Dorg.slf4j.simpleLogger.dateTimeFormat=yyyy-MM-dd\\\'T\\\'HH:mm:ss.SSS')
+    // The -XX:+TieredCompilation -XX:TieredStopAtLevel=1 JVM options enable
+    // tiered compilation to make the JVM startup times faster during the 
tests.
+    context.mavenOpts('-XX:+TieredCompilation')
+    context.mavenOpts('-XX:TieredStopAtLevel=1')
+    context.mavenOpts(mavenOpts)
+    context.rootPOM('pom.xml')
+    // Use a repository local to the workspace for better isolation of jobs.
+    context.localRepository(LocalRepositoryLocation.LOCAL_TO_WORKSPACE)
+    // Disable archiving the built artifacts by default, as this is slow and 
flaky.
+    // We can usually recreate them easily, and we can also opt-in individual 
jobs
+    // to artifact archiving.
+    if (context.metaClass.respondsTo(context, 'archivingDisabled', boolean)) {
+      context.archivingDisabled(true)
+    }
+  }
+
+  // Sets common config for PreCommit jobs.
+  static void setPreCommit(context,
+                           String commitStatusName,
+                           String successComment = '--none--') {
+    // Set pull request build trigger.
+    setPullRequestBuildTrigger(context, commitStatusName, successComment)
+  }
+
+  // Enable triggering postcommit runs against pull requests. Users can 
comment the trigger phrase
+  // specified in the postcommit job and have the job run against their PR to 
run
+  // tests not in the presubmit suite for additional confidence.
+  static void enablePhraseTriggeringFromPullRequest(context,
+                                                    String commitStatusName,
+                                                    String prTriggerPhrase) {
+    setPullRequestBuildTrigger(
+      context,
+      commitStatusName,
+      '--none--',
+      prTriggerPhrase)
+  }
+
+  // Sets common config for PostCommit jobs.
+  static void setPostCommit(context,
+                            String buildSchedule = '0 */6 * * *',
+                            boolean triggerEveryPush = true,
+                            String notifyAddress = 
'[email protected]',
+                            boolean emailIndividuals = true) {
+    // Set build triggers
+    context.triggers {
+      // By default runs every 6 hours.
+      cron(buildSchedule)
+      if (triggerEveryPush) {
+        githubPush()
+      }
+    }
+
+    context.publishers {
+      // Notify an email address for each failed build (defaults to commits@).
+      mailer(notifyAddress, false, emailIndividuals)
+    }
+  }
+
+  // Sets common config for Website PostCommit jobs.
+  static void setWebsitePostCommit(context,
+                                   String buildSchedule = 'H 1 * * *',
+                                   String notifyAddress = 
'[email protected]',
+                                   boolean emailIndividuals = true) {
+    // Set build triggers
+    context.triggers {
+      // By default runs every 6 hours.
+      scm(buildSchedule)
+      githubPush()
+    }
+
+    context.publishers {
+      // Notify an email address for each failed build (defaults to commits@).
+      mailer(notifyAddress, false, emailIndividuals)
+    }
+  }
+
+}
diff --git 
a/.test-infra/jenkins/job_bookkeeper_postcommit_master_jdkversions.groovy 
b/.test-infra/jenkins/job_bookkeeper_postcommit_master_jdkversions.groovy
new file mode 100644
index 0000000..4a52a17
--- /dev/null
+++ b/.test-infra/jenkins/job_bookkeeper_postcommit_master_jdkversions.groovy
@@ -0,0 +1,57 @@
+/*
+ * 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.
+ */
+
+import common_job_properties
+
+// This job runs the Java postcommit tests cross multiple JDK versions.
+matrixJob('bookkeeper_postcommit_master_jdkversions') {
+  description('Runs nightly build for bookkeeper in multiple Jdk versions.')
+
+  // Set common parameters.
+  common_job_properties.setTopLevelMainJobProperties(delegate)
+
+  // Set JDK versions.
+  axes {
+    label('label', 'ubuntu')
+    jdk('JDK 1.8 (latest)',
+        'JDK 1.9 (latest)')
+  }
+
+  // Sets that this is a PostCommit job.
+  common_job_properties.setPostCommit(
+      delegate,
+      'H 12 * * *',
+      false)
+
+  // Allows triggering this build against pull requests.
+  common_job_properties.enablePhraseTriggeringFromPullRequest(
+      delegate,
+      'JDK Version Test',
+      '/test-jdks')
+
+  // Maven build for this job.
+  steps {
+    maven {
+      // Set maven parameters.
+      common_job_properties.setMavenConfig(delegate)
+
+      // Maven build project.
+      goals('clean apache-rat:check package spotbugs:check')
+    }
+  }
+}
diff --git a/.test-infra/jenkins/job_bookkeeper_postcommit_website.groovy 
b/.test-infra/jenkins/job_bookkeeper_postcommit_website.groovy
new file mode 100644
index 0000000..e796c91
--- /dev/null
+++ b/.test-infra/jenkins/job_bookkeeper_postcommit_website.groovy
@@ -0,0 +1,87 @@
+/*
+ * 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.
+ */
+
+import common_job_properties
+
+// This job builds and publishes the website
+job('bookkeeper_postcommit_publish_website') {
+  description('Publish website to asf-site branch')
+
+  // Set common parameters.
+  common_job_properties.setTopLevelWebsiteJobProperties(delegate)
+
+  // Sets that this is a WebsitePostCommit job.
+  common_job_properties.setWebsitePostCommit(delegate)
+
+  // Allows triggering this build against pull requests.
+  common_job_properties.enablePhraseTriggeringFromPullRequest(
+      delegate,
+      'Build Website',
+      '/build-website')
+
+  steps {
+    // Run the following shell script as a build step.
+    shell '''
+export MAVEN_HOME=/home/jenkins/tools/maven/latest
+export PATH=$JAVA_HOME/bin:$MAVEN_HOME/bin:$PATH
+export MAVEN_OPTS=-Xmx2048m
+export JEKYLL_ENV=production
+
+# CD site/
+cd site
+
+# Build the javadoc
+make clean
+
+# generate javadoc
+make javadoc
+
+# run the docker image to build the website
+./docker/ci.sh
+
+# publish website
+source scripts/common.sh
+
+ORIGIN_REPO=$(git remote show origin | grep 'Push  URL' | awk -F// '{print 
$NF}')
+echo "ORIGIN_REPO: $ORIGIN_REPO"
+
+(
+  cd $APACHE_GENERATED_DIR
+
+  rm -rf $TMP_DIR
+  mkdir -p $TMP_DIR
+  cd $TMP_DIR
+
+  # clone the remote repo
+  git clone "https://$ORIGIN_REPO"; .
+  git config user.name "Apache BookKeeper Site Updater"
+  git config user.email "[email protected]"
+  git fetch origin
+  git checkout asf-site
+  git log | head
+  # copy the apache generated dir
+  cp -r $APACHE_GENERATED_DIR/content/* $TMP_DIR/content
+
+  git add -A .
+  git diff-index --quiet HEAD || (git commit -m "Updated site at revision 
$REVISION" && (git log | head) && git push -q origin HEAD:asf-site)
+
+  rm -rf $TMP_DIR
+)
+    '''.stripIndent().trim()
+  }
+}
diff --git a/.test-infra/jenkins/job_bookkeeper_precommit_pullrequest.groovy 
b/.test-infra/jenkins/job_bookkeeper_precommit_pullrequest.groovy
new file mode 100644
index 0000000..537a55d
--- /dev/null
+++ b/.test-infra/jenkins/job_bookkeeper_precommit_pullrequest.groovy
@@ -0,0 +1,54 @@
+/*
+ * 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.
+ */
+
+import common_job_properties
+
+// This is the Java precommit which runs a maven install, and the current set 
of precommit tests.
+matrixJob('bookkeeper_precommit_pullrequest') {
+  description('precommit verification for pull requests of <a 
href="http://bookkeeper.apache.org";>Apache BookKeeper</a>.')
+
+  // Execute concurrent builds if necessary.
+  concurrentBuild()
+
+  // Set common parameters.
+  common_job_properties.setTopLevelMainJobProperties(
+    delegate,
+    'master',
+    120)
+
+  // Set JDK versions.
+  axes {
+    label('label', 'ubuntu')
+    jdk('JDK 1.8 (latest)',
+        'JDK 1.9 (latest)')
+  }
+
+  // Sets that this is a PreCommit job.
+  common_job_properties.setPreCommit(delegate, 'Maven clean install')
+
+  // Maven build for this job.
+  steps {
+    maven {
+      // Set Maven parameters.
+      common_job_properties.setMavenConfig(delegate)
+
+      // Maven build project
+      goals('clean apache-rat:check package spotbugs:check')
+    }
+  }
+}
diff --git a/.test-infra/jenkins/job_bookkeeper_release_branch.groovy 
b/.test-infra/jenkins/job_bookkeeper_release_branch.groovy
new file mode 100644
index 0000000..3336a68
--- /dev/null
+++ b/.test-infra/jenkins/job_bookkeeper_release_branch.groovy
@@ -0,0 +1,47 @@
+/*
+ * 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.
+ */
+
+import common_job_properties
+
+// This job runs nightly build for bookkeeper release branch
+mavenJob('bookkeeper_release_branch') {
+  description('Run nightly build for bookkeeper release branch')
+
+  // Set common parameters.
+  common_job_properties.setTopLevelMainJobProperties(
+      delegate,
+      "branch-4.6")
+
+  // Sets that this is a PostCommit job.
+  common_job_properties.setPostCommit(
+      delegate,
+      'H 12 * * *',
+      false)
+
+  // Allows triggering this build against pull requests.
+  common_job_properties.enablePhraseTriggeringFromPullRequest(
+      delegate,
+      'Release Branch Test',
+      '/test-release-branch')
+  
+  // Set maven parameters.
+  common_job_properties.setMavenConfig(delegate)
+
+  // Maven build project.
+  goals('clean apache-rat:check package findbugs:check')
+}
diff --git a/.test-infra/jenkins/job_bookkeeper_release_nightly_snapshot.groovy 
b/.test-infra/jenkins/job_bookkeeper_release_nightly_snapshot.groovy
new file mode 100644
index 0000000..b6fb3bd
--- /dev/null
+++ b/.test-infra/jenkins/job_bookkeeper_release_nightly_snapshot.groovy
@@ -0,0 +1,45 @@
+/*
+ * 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.
+ */
+
+import common_job_properties
+
+// This job deploys a snapshot of latest master to artifactory nightly
+mavenJob('bookkeeper_release_nightly_snapshot') {
+  description('runs a `mvn clean deploy` of the nightly snapshot for 
bookkeeper.')
+
+  // Set common parameters.
+  common_job_properties.setTopLevelMainJobProperties(delegate)
+
+  // Sets that this is a PostCommit job.
+  common_job_properties.setPostCommit(
+      delegate,
+      'H 12 * * *',
+      false)
+
+  // Allows triggering this build against pull requests.
+  common_job_properties.enablePhraseTriggeringFromPullRequest(
+      delegate,
+      'Release Snapshot',
+      '/release-snapshot')
+
+  // Set maven parameters.
+  common_job_properties.setMavenConfig(delegate)
+
+  // Maven build project.
+  goals('clean apache-rat:check package spotbugs:check 
-Dmaven.test.failure.ignore=true deploy')
+}
diff --git a/.test-infra/jenkins/job_seed.groovy 
b/.test-infra/jenkins/job_seed.groovy
new file mode 100644
index 0000000..a77d056
--- /dev/null
+++ b/.test-infra/jenkins/job_seed.groovy
@@ -0,0 +1,51 @@
+/*
+ * 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.
+ */
+
+import common_job_properties
+
+// Defines the seed job, which creates or updates all other Jenkins projects.
+job('bookkeeper-seed') {
+  description('Automatically configures all Apache BookKeeper Jenkins projects 
based' +
+              ' on Jenkins DSL groovy files checked into the code repository.')
+
+  // Set common parameters.
+  common_job_properties.setTopLevelMainJobProperties(delegate)
+
+  // This is a post-commit job that runs once per day, not for every push.
+  common_job_properties.setPostCommit(
+      delegate,
+      'H 6 * * *',
+      false,
+      '[email protected]')
+
+  // Allows triggering this build against pull requests.
+  common_job_properties.enablePhraseTriggeringFromPullRequest(
+    delegate,
+    'Seed Job',
+    '/seed')
+
+  steps {
+    dsl {
+      // A list or a glob of other groovy files to process.
+      external('.test-infra/jenkins/job_*.groovy')
+
+      // If a job is removed from the script, delete it
+      removeAction('DELETE')
+    }
+  }
+}
diff --git a/jenkins/README.md b/jenkins/README.md
deleted file mode 100644
index f0e27f8..0000000
--- a/jenkins/README.md
+++ /dev/null
@@ -1,65 +0,0 @@
-<!--
-   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.
--->
-
-Instructions for build Jenkins bookkeeper-master job using Jenkins Job Builder
-
-
-Requirements:
-
-* Unix System
-* Jenkins Job Builder (see 
https://docs.openstack.org/infra/jenkins-job-builder/)
-
-
-The jenkins folder contains:
-
- - bookkeeper-master-job-configuration.yaml   (Jenkins job definition)
- - jenkins_jobs.ini   (Jenkins job builder configuration)
-
-
-Build and install latest version of jenkins-job-builder;
-
-```
-$ git clone https://git.openstack.org/openstack-infra/jenkins-job-builder
-```
-
-```
-$ python setup.py build
-```
-
-```
-$ python setup.py install --user
-```
-
-How do I create job ?
-
-Get an username and an "API Token" for your Jenkins configuration
-
-In order to test jenkins job configuration, go to 'jenkins' directory and run:
-
-```
-   $ jenkins-jobs test bookkeeper-master-job-configuration.yaml
-```
-
-This will print the XML configuration of the job which will be deployed to 
your Jenkins
-
- In order to apply the configuration and create the job, run:
-
-```
-   $ jenkins-jobs --user USER --password API-TOKEN --conf jenkins_jobs.ini 
update bookkeeper-master-job-configuration.yaml
-```
-
-By default the job will be deployed to builds.apache.org, you can change the 
destination in jenkins_jobs.ini
\ No newline at end of file
diff --git a/jenkins/bookkeeper-master-job-configuration.yaml 
b/jenkins/bookkeeper-master-job-configuration.yaml
deleted file mode 100644
index f79439a..0000000
--- a/jenkins/bookkeeper-master-job-configuration.yaml
+++ /dev/null
@@ -1,60 +0,0 @@
-
-# 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.
-
----
-- scm:
-    name: repo
-    scm:
-    - git:
-        url: https://github.com/apache/bookkeeper.git
-        branches:
-        - "*/master"
-- job:
-    name: bookkeeper-master
-    description: "Nightly build for BookKeeper master.\r\nThis job is built 
using jenkins-jobs build scripts committed on BookKeeper repo.\r\n\r\nNo not 
edit manually this job"
-    project-type: maven
-    jdk: "JDK 1.8 (latest)"
-    node: Hadoop
-    maven:
-      root-pom: pom.xml
-      goals: clean apache-rat:check package spotbugs:check 
-Dmaven.test.failure.ignore=false deploy
-      incremental-build: true
-    reporters:
-    - email:
-        recipients: [email protected]
-    triggers:
-    - timed: H 12 * * *
-    wrappers:
-    - timeout:
-        type: likely-stuck
-        write-description: true
-    scm:
-    - repo
-    properties:
-    - build-discarder:
-        days-to-keep: 14
-        num-to-keep: 5
-        artifact-days-to-keep: -1
-        artifact-num-to-keep: -1
-    - throttle:
-        enabled: false
-        max-per-node: 0
-        max-total: 0
-        option: project
-    -  rebuild:
-        auto-rebuild: false
-        rebuild-disabled: false
diff --git a/jenkins/jenkins_jobs.ini b/jenkins/jenkins_jobs.ini
deleted file mode 100644
index 6fbc8ea..0000000
--- a/jenkins/jenkins_jobs.ini
+++ /dev/null
@@ -1,28 +0,0 @@
-
-;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.
-
-[job_builder]
-ignore_cache=True
-keep_descriptions=False
-include_path=.:scripts:~/git/
-recursive=False
-exclude=.*:manual:./development
-allow_duplicates=False
-
-[jenkins]
-url=https://builds.apache.org
-query_plugins_info=False
-
-
-

-- 
To stop receiving notification emails like this one, please contact
['"[email protected]" <[email protected]>'].

Reply via email to