merlimat closed pull request #1392: Precommit integration test gate
URL: https://github.com/apache/incubator-pulsar/pull/1392
 
 
   

This is a PR merged from a forked repository.
As GitHub hides the original diff on merge, it is displayed below for
the sake of provenance:

As this is a foreign pull request (from a fork), the diff is supplied
below (as it won't show otherwise due to GitHub magic):

diff --git a/.test-infra/jenkins/common_job_properties.groovy 
b/.test-infra/jenkins/common_job_properties.groovy
index c9e48fd81..08c883d8d 100644
--- a/.test-infra/jenkins/common_job_properties.groovy
+++ b/.test-infra/jenkins/common_job_properties.groovy
@@ -77,11 +77,28 @@ class common_job_properties {
       daysToKeep(14)
     }
 
+    context.parameters {
+      // This is a recommended setup if you want to run the job manually. The
+      // ${gitrepo} parameter needs to be provided, and defaults to the main 
repo.
+      stringParam(
+          'gitrepo',
+          scmUrl,
+          'Git repository to build.')
+
+      // 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.')
+    }
+
+
     // Source code management.
     context.scm {
       git {
         remote {
-          url(scmUrl)
+          url('${gitrepo}')
           refspec('+refs/heads/*:refs/remotes/origin/* ' +
                   
'+refs/pull/${ghprbPullId}/*:refs/remotes/origin/pr/${ghprbPullId}/*')
         }
@@ -92,15 +109,6 @@ class common_job_properties {
       }
     }
 
-    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 {
diff --git a/.test-infra/jenkins/job_pulsar_precommit_integrationtests.groovy 
b/.test-infra/jenkins/job_pulsar_precommit_integrationtests.groovy
new file mode 100644
index 000000000..7a084185b
--- /dev/null
+++ b/.test-infra/jenkins/job_pulsar_precommit_integrationtests.groovy
@@ -0,0 +1,67 @@
+/**
+ * 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.
+freeStyleJob('pulsar_precommit_integrationtests') {
+    description('precommit integration test verification for pull requests of 
<a href="http://pulsar.apache.org";>Apache Pulsar</a>.')
+
+    // Set common parameters.
+    common_job_properties.setTopLevelMainJobProperties(delegate)
+
+    // Sets that this is a PreCommit job.
+    common_job_properties.setPreCommit(delegate, 'Integration Tests')
+
+    steps {
+        shell('tests/scripts/pre-integ-tests.sh')
+
+        // Build everything
+        maven {
+            // Set Maven parameters.
+            common_job_properties.setMavenConfig(delegate)
+
+            goals('-B clean install -Pdocker')
+            properties(skipTests: true, interactiveMode: false)
+        }
+
+        maven {
+            // Set Maven parameters.
+            common_job_properties.setMavenConfig(delegate)
+            rootPOM('tests/pom.xml')
+            goals('-B test -DintegrationTests')
+        }
+
+        shell('tests/scripts/post-integ-tests.sh')
+    }
+
+    publishers {
+        archiveArtifacts {
+            allowEmpty(true)
+            pattern('**/target/container-logs/**')
+             // archiveJunit doesn't capture everything, so copy these files
+            pattern('**/surefire-reports/TEST-*.xml')
+            pattern('**/surefire-reports/*.txt')
+            // pre and post scripts should output to .debug-info files if 
needed
+            pattern('*.debug-info')
+        }
+        archiveJunit('**/surefire-reports/TEST-*.xml') {
+            allowEmptyResults(true)
+        }
+    }
+}
diff --git a/tests/scripts/post-integ-tests.sh 
b/tests/scripts/post-integ-tests.sh
new file mode 100755
index 000000000..8af7ab8b9
--- /dev/null
+++ b/tests/scripts/post-integ-tests.sh
@@ -0,0 +1,22 @@
+#!/usr/bin/env bash
+#
+# 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.
+#
+
+set -ex
+kill $(cat docker-log.pid) || true
diff --git a/tests/scripts/pre-integ-tests.sh b/tests/scripts/pre-integ-tests.sh
new file mode 100755
index 000000000..e5dec320d
--- /dev/null
+++ b/tests/scripts/pre-integ-tests.sh
@@ -0,0 +1,29 @@
+#!/usr/bin/env bash
+#
+# 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.
+#
+
+set -ex
+id
+ulimit -a
+pwd
+df -h
+ps -eo euser,pid,ppid,pgid,start,pcpu,pmem,cmd
+docker network prune -f --filter name=pulsarnet_*
+docker system events > docker.debug-info & echo $! > docker-log.pid
+


 

----------------------------------------------------------------
This is an automated message from the Apache Git Service.
To respond to the message, please log on GitHub and use the
URL above to go to the specific comment.
 
For queries about this service, please contact Infrastructure at:
us...@infra.apache.org


With regards,
Apache Git Services

Reply via email to