You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@beam.apache.org by ke...@apache.org on 2016/12/06 16:41:27 UTC
[37/50] [abbrv] incubator-beam git commit: Initial commit of jobs
Initial commit of jobs
Signed-off-by: Jason Kuster <ja...@google.com>
Project: http://git-wip-us.apache.org/repos/asf/incubator-beam/repo
Commit: http://git-wip-us.apache.org/repos/asf/incubator-beam/commit/ad9ca455
Tree: http://git-wip-us.apache.org/repos/asf/incubator-beam/tree/ad9ca455
Diff: http://git-wip-us.apache.org/repos/asf/incubator-beam/diff/ad9ca455
Branch: refs/heads/gearpump-runner
Commit: ad9ca455218f6dda32e31ee97fe721e8b4ad6c2a
Parents: c840455
Author: Jason Kuster <ja...@google.com>
Authored: Mon Nov 14 15:35:40 2016 -0800
Committer: Davor Bonaci <da...@google.com>
Committed: Fri Dec 2 17:40:12 2016 -0800
----------------------------------------------------------------------
.jenkins/common_job_properties.groovy | 166 +++++++++++++++++++
...job_beam_PostCommit_Java_MavenInstall.groovy | 42 +++++
...ommit_Java_RunnableOnService_Dataflow.groovy | 39 +++++
...stCommit_Java_RunnableOnService_Flink.groovy | 38 +++++
...ommit_Java_RunnableOnService_Gearpump.groovy | 41 +++++
...stCommit_Java_RunnableOnService_Spark.groovy | 38 +++++
.../job_beam_PostCommit_Python_Verify.groovy | 37 +++++
.../job_beam_PreCommit_Java_MavenInstall.groovy | 42 +++++
.../job_beam_Release_NightlySnapshot.groovy | 46 +++++
.jenkins/job_seed.groovy | 47 ++++++
10 files changed, 536 insertions(+)
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/incubator-beam/blob/ad9ca455/.jenkins/common_job_properties.groovy
----------------------------------------------------------------------
diff --git a/.jenkins/common_job_properties.groovy b/.jenkins/common_job_properties.groovy
new file mode 100644
index 0000000..f3a8a07
--- /dev/null
+++ b/.jenkins/common_job_properties.groovy
@@ -0,0 +1,166 @@
+/*
+ * 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.
+class common_job_properties {
+
+ // Sets common top-level job properties.
+ static def setTopLevelJobProperties(def context,
+ def default_branch = 'master',
+ def default_timeout = 100) {
+ // GitHub project.
+ context.properties {
+ githubProjectUrl('https://github.com/apache/incubator-beam/')
+ }
+
+ // Set JDK version.
+ context.jdk('JDK 1.8 (latest)')
+
+ // Restrict this project to run only on Jenkins executors dedicated to the
+ // Apache Beam project.
+ context.label('beam')
+
+ // 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('https://github.com/apache/incubator-beam.git')
+ refspec('+refs/heads/*:refs/remotes/origin/* ' +
+ '+refs/pull/*:refs/remotes/origin/pr/*')
+ }
+ 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',
+ default_branch,
+ '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(default_timeout)
+ abortBuild()
+ }
+
+ // Set SPARK_LOCAL_IP for spark tests.
+ environmentVariables {
+ env('SPARK_LOCAL_IP', '127.0.0.1')
+ }
+ }
+ }
+
+ // Sets the pull request build trigger.
+ static def setPullRequestBuildTrigger(def context,
+ def commitStatusContext,
+ def successComment = '--none--') {
+ context.triggers {
+ githubPullRequest {
+ admins(['asfbot'])
+ useGitHubHooks()
+ orgWhitelist(['apache'])
+ allowMembersOfWhitelistedOrgsAsAdmin()
+ permitAll()
+
+ extensions {
+ commitStatus {
+ // This is the name that will show up in the GitHub pull request UI
+ // for this Jenkins project.
+ delegate.context(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 def setMavenConfig(def context) {
+ context.mavenInstallation('Maven 3.3.3')
+ context.rootPOM('pom.xml')
+ // Use a repository local to the workspace for better isolation of jobs.
+ context.localRepository(LocalRepositoryLocation.LOCAL_TO_WORKSPACE)
+ }
+
+ // Sets common config for PreCommit jobs.
+ static def setPreCommit(def context, comment) {
+ // Set pull request build trigger.
+ setPullRequestBuildTrigger(context, comment)
+ }
+
+ // Sets common config for PostCommit jobs.
+ static def setPostCommit(def context,
+ def build_schedule = '0 */6 * * *',
+ def scm_schedule = '* * * * *',
+ def notify_address = 'commits@beam.incubator.apache.org') {
+ // Set build triggers
+ context.triggers {
+ // By default runs every 6 hours.
+ cron(build_schedule)
+ // Also polls SCM every minute.
+ scm(scm_schedule)
+ }
+
+ context.publishers {
+ // Notify an email address for each failed build (defaults to commits@).
+ mailer(notify_address, false, true)
+ }
+ }
+}
http://git-wip-us.apache.org/repos/asf/incubator-beam/blob/ad9ca455/.jenkins/job_beam_PostCommit_Java_MavenInstall.groovy
----------------------------------------------------------------------
diff --git a/.jenkins/job_beam_PostCommit_Java_MavenInstall.groovy b/.jenkins/job_beam_PostCommit_Java_MavenInstall.groovy
new file mode 100644
index 0000000..7fc6c3b
--- /dev/null
+++ b/.jenkins/job_beam_PostCommit_Java_MavenInstall.groovy
@@ -0,0 +1,42 @@
+/*
+ * 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, including the suite of integration
+// tests.
+mavenJob('beam_PostCommit_Java_MavenInstall') {
+ description('Runs postcommit tests on the Java SDK.')
+
+ previousNames('beam_PostCommit_MavenVerify')
+
+ // Execute concurrent builds if necessary.
+ concurrentBuild()
+
+ // Set common parameters.
+ common_job_properties.setTopLevelJobProperties(delegate)
+
+ // Set maven parameters.
+ common_job_properties.setMavenConfig(delegate)
+
+ // Sets that this is a PostCommit job.
+ common_job_properties.setPostCommit(delegate)
+
+ // Maven goals for this job.
+ goals('-B -e -P release,dataflow-runner clean install -DskipITs=false -DintegrationTestPipelineOptions=\'[ "--project=apache-beam-testing", "--tempRoot=gs://temp-storage-for-end-to-end-tests", "--runner=org.apache.beam.runners.dataflow.testing.TestDataflowRunner" ]\'')
+}
http://git-wip-us.apache.org/repos/asf/incubator-beam/blob/ad9ca455/.jenkins/job_beam_PostCommit_Java_RunnableOnService_Dataflow.groovy
----------------------------------------------------------------------
diff --git a/.jenkins/job_beam_PostCommit_Java_RunnableOnService_Dataflow.groovy b/.jenkins/job_beam_PostCommit_Java_RunnableOnService_Dataflow.groovy
new file mode 100644
index 0000000..44136ad
--- /dev/null
+++ b/.jenkins/job_beam_PostCommit_Java_RunnableOnService_Dataflow.groovy
@@ -0,0 +1,39 @@
+/*
+ * 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 suite of RunnableOnService tests against the Dataflow
+// runner.
+mavenJob('beam_PostCommit_Java_RunnableOnService_Dataflow') {
+ description('Runs the RunnableOnService suite on the Dataflow runner.')
+
+ previousNames('beam_PostCommit_RunnableOnService_GoogleCloudDataflow')
+
+ // Set common parameters.
+ common_job_properties.setTopLevelJobProperties(delegate)
+
+ // Set maven parameters.
+ common_job_properties.setMavenConfig(delegate)
+
+ // Sets that this is a PostCommit job.
+ common_job_properties.setPostCommit(delegate)
+
+ // Maven goals for this job.
+ goals('-B -e clean verify -am -pl runners/google-cloud-dataflow-java -DforkCount=0 -DrunnableOnServicePipelineOptions=\'[ "--runner=org.apache.beam.runners.dataflow.testing.TestDataflowRunner", "--project=apache-beam-testing", "--tempRoot=gs://temp-storage-for-runnable-on-service-tests/" ]\'')
+}
http://git-wip-us.apache.org/repos/asf/incubator-beam/blob/ad9ca455/.jenkins/job_beam_PostCommit_Java_RunnableOnService_Flink.groovy
----------------------------------------------------------------------
diff --git a/.jenkins/job_beam_PostCommit_Java_RunnableOnService_Flink.groovy b/.jenkins/job_beam_PostCommit_Java_RunnableOnService_Flink.groovy
new file mode 100644
index 0000000..5a5863f
--- /dev/null
+++ b/.jenkins/job_beam_PostCommit_Java_RunnableOnService_Flink.groovy
@@ -0,0 +1,38 @@
+/*
+ * 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 suite of RunnableOnService tests against the Flink runner.
+mavenJob('beam_PostCommit_Java_RunnableOnService_Flink') {
+ description('Runs the RunnableOnService suite on the Flink runner.')
+
+ previousNames('beam_PostCommit_RunnableOnService_FlinkLocal')
+
+ // Set common parameters.
+ common_job_properties.setTopLevelJobProperties(delegate)
+
+ // Set maven parameters.
+ common_job_properties.setMavenConfig(delegate)
+
+ // Sets that this is a PostCommit job.
+ common_job_properties.setPostCommit(delegate)
+
+ // Maven goals for this job.
+ goals('-B -e clean verify -am -pl runners/flink/runner -Plocal-runnable-on-service-tests -Prunnable-on-service-tests')
+}
http://git-wip-us.apache.org/repos/asf/incubator-beam/blob/ad9ca455/.jenkins/job_beam_PostCommit_Java_RunnableOnService_Gearpump.groovy
----------------------------------------------------------------------
diff --git a/.jenkins/job_beam_PostCommit_Java_RunnableOnService_Gearpump.groovy b/.jenkins/job_beam_PostCommit_Java_RunnableOnService_Gearpump.groovy
new file mode 100644
index 0000000..f07bbc6
--- /dev/null
+++ b/.jenkins/job_beam_PostCommit_Java_RunnableOnService_Gearpump.groovy
@@ -0,0 +1,41 @@
+/*
+ * 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 suite of RunnableOnService tests against the Gearpump
+// runner.
+mavenJob('beam_PostCommit_Java_RunnableOnService_Gearpump') {
+ description('Runs the RunnableOnService suite on the Gearpump runner.')
+
+ previousNames('beam_PostCommit_RunnableOnService_GearpumpLocal')
+
+ // Set common parameters.
+ common_job_properties.setTopLevelJobProperties(delegate, 'gearpump-runner')
+
+ // Set maven parameters.
+ common_job_properties.setMavenConfig(delegate)
+
+ // Sets that this is a PostCommit job.
+ // 0 5 31 2 * will run on Feb 31 (i.e. never) according to job properties.
+ // This job triggers only on SCM.
+ common_job_properties.setPostCommit(delegate, '0 5 31 2 *')
+
+ // Maven goals for this job.
+ goals('-B -e clean verify -am -pl runners/gearpump -DforkCount=0 -DrunnableOnServicePipelineOptions=\'[ "--runner=TestGearpumpRunner", "--streaming=false" ]\'')
+}
http://git-wip-us.apache.org/repos/asf/incubator-beam/blob/ad9ca455/.jenkins/job_beam_PostCommit_Java_RunnableOnService_Spark.groovy
----------------------------------------------------------------------
diff --git a/.jenkins/job_beam_PostCommit_Java_RunnableOnService_Spark.groovy b/.jenkins/job_beam_PostCommit_Java_RunnableOnService_Spark.groovy
new file mode 100644
index 0000000..875c6e6
--- /dev/null
+++ b/.jenkins/job_beam_PostCommit_Java_RunnableOnService_Spark.groovy
@@ -0,0 +1,38 @@
+/*
+ * 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 suite of RunnableOnService tests against the Spark runner.
+mavenJob('beam_PostCommit_Java_RunnableOnService_Spark') {
+ description('Runs the RunnableOnService suite on the Spark runner.')
+
+ previousNames('beam_PostCommit_RunnableOnService_SparkLocal')
+
+ // Set common parameters.
+ common_job_properties.setTopLevelJobProperties(delegate)
+
+ // Set maven parameters.
+ common_job_properties.setMavenConfig(delegate)
+
+ // Sets that this is a PostCommit job.
+ common_job_properties.setPostCommit(delegate)
+
+ // Maven goals for this job.
+ goals('-B -e clean verify -am -pl runners/spark -Prunnable-on-service-tests -Plocal-runnable-on-service-tests -Dspark.port.maxRetries=64 -Dspark.ui.enabled=false')
+}
http://git-wip-us.apache.org/repos/asf/incubator-beam/blob/ad9ca455/.jenkins/job_beam_PostCommit_Python_Verify.groovy
----------------------------------------------------------------------
diff --git a/.jenkins/job_beam_PostCommit_Python_Verify.groovy b/.jenkins/job_beam_PostCommit_Python_Verify.groovy
new file mode 100644
index 0000000..79e173b
--- /dev/null
+++ b/.jenkins/job_beam_PostCommit_Python_Verify.groovy
@@ -0,0 +1,37 @@
+/*
+ * 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 defines the Python postcommit tests.
+job('beam_PostCommit_Python_Verify') {
+ description('Runs postcommit tests on the Python SDK.')
+
+ previousNames('beam_PostCommit_PythonVerify')
+
+ // Set common parameters.
+ common_job_properties.setTopLevelJobProperties(delegate, 'python-sdk')
+
+ // Sets that this is a PostCommit job.
+ common_job_properties.setPostCommit(delegate, '0 3-22/6 * * *')
+
+ // Execute shell command to test Python SDK.
+ steps {
+ shell('bash sdks/python/run_postcommit.sh')
+ }
+}
http://git-wip-us.apache.org/repos/asf/incubator-beam/blob/ad9ca455/.jenkins/job_beam_PreCommit_Java_MavenInstall.groovy
----------------------------------------------------------------------
diff --git a/.jenkins/job_beam_PreCommit_Java_MavenInstall.groovy b/.jenkins/job_beam_PreCommit_Java_MavenInstall.groovy
new file mode 100644
index 0000000..8a8dea5
--- /dev/null
+++ b/.jenkins/job_beam_PreCommit_Java_MavenInstall.groovy
@@ -0,0 +1,42 @@
+/*
+ * 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.
+mavenJob('beam_PreCommit_Java_MavenInstall') {
+ description('Runs an install of the current GitHub Pull Request.')
+
+ previousNames('beam_PreCommit_MavenVerify')
+
+ // Execute concurrent builds if necessary.
+ concurrentBuild()
+
+ // Set common parameters.
+ common_job_properties.setTopLevelJobProperties(delegate)
+
+ // Set Maven parameters.
+ common_job_properties.setMavenConfig(delegate)
+
+ // Sets that this is a PreCommit job.
+ common_job_properties.setPreCommit(delegate, 'Jenkins: Maven clean install')
+
+ // Maven goals for this job.
+ goals('-B -e -Prelease,include-runners,jenkins-precommit,direct-runner,dataflow-runner,spark-runner,flink-runner,apex-runner help:effective-settings clean install')
+}
http://git-wip-us.apache.org/repos/asf/incubator-beam/blob/ad9ca455/.jenkins/job_beam_Release_NightlySnapshot.groovy
----------------------------------------------------------------------
diff --git a/.jenkins/job_beam_Release_NightlySnapshot.groovy b/.jenkins/job_beam_Release_NightlySnapshot.groovy
new file mode 100644
index 0000000..496a0c5
--- /dev/null
+++ b/.jenkins/job_beam_Release_NightlySnapshot.groovy
@@ -0,0 +1,46 @@
+/*
+ * 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 nightly snapshot build -- we use this to deploy a daily snapshot
+// to https://repository.apache.org/content/groups/snapshots/org/apache/beam.
+// Runs the postsubmit suite before deploying.
+mavenJob('beam_Release_NightlySnapshot') {
+ description('Runs a mvn clean deploy of the nightly snapshot.')
+
+ // Execute concurrent builds if necessary.
+ concurrentBuild()
+
+ // Set common parameters.
+ common_job_properties.setTopLevelJobProperties(delegate)
+
+ // Set maven paramaters.
+ common_job_properties.setMavenConfig(delegate)
+
+ // Set that this is a PostCommit job.
+ // Polls SCM on Feb 31st, i.e. never.
+ common_job_properties.setPostCommit(
+ delegate,
+ '0 7 * * *',
+ '0 5 31 2 *',
+ 'dev@beam.incubator.apache.org')
+
+ // Maven goals for this job.
+ goals('-B -e clean deploy -P release,dataflow-runner -DskipITs=false -DintegrationTestPipelineOptions=\'[ "--project=apache-beam-testing", "--tempRoot=gs://temp-storage-for-end-to-end-tests", "--runner=org.apache.beam.runners.dataflow.testing.TestDataflowRunner" ]\'')
+}
http://git-wip-us.apache.org/repos/asf/incubator-beam/blob/ad9ca455/.jenkins/job_seed.groovy
----------------------------------------------------------------------
diff --git a/.jenkins/job_seed.groovy b/.jenkins/job_seed.groovy
new file mode 100644
index 0000000..e46e5a4
--- /dev/null
+++ b/.jenkins/job_seed.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
+
+// Defines the seed job, which creates or updates all other Jenkins projects.
+job('beam_SeedJob_Main') {
+ description('Automatically configures all Apache Beam main repo Jenkins ' +
+ 'projects based on Jenkins DSL groovy files checked into the ' +
+ 'code repository.')
+
+ // Set common parameters.
+ common_job_properties.setTopLevelJobProperties(delegate)
+
+ // Set that this is a PostCommit job.
+ // Polls SCM on Feb 31st, i.e. never.
+ common_job_properties.setPostCommit(
+ delegate,
+ '0 6 * * *',
+ '0 5 31 2 *',
+ 'dev@beam.incubator.apache.org')
+
+ steps {
+ dsl {
+ // A list or a glob of other groovy files to process.
+ external('.jenkins/job_*.groovy')
+
+ // If a job is removed from the script, disable it (rather than deleting).
+ removeAction('DISABLE')
+ }
+ }
+}