You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@pulsar.apache.org by mm...@apache.org on 2018/03/15 17:52:59 UTC
[incubator-pulsar] branch master updated: Precommit integration
test gate (#1392)
This is an automated email from the ASF dual-hosted git repository.
mmerli pushed a commit to branch master
in repository https://gitbox.apache.org/repos/asf/incubator-pulsar.git
The following commit(s) were added to refs/heads/master by this push:
new fee5667 Precommit integration test gate (#1392)
fee5667 is described below
commit fee5667e91799433841ac4d1427717b61317263e
Author: Ivan Kelly <iv...@apache.org>
AuthorDate: Thu Mar 15 18:52:57 2018 +0100
Precommit integration test gate (#1392)
* Precommit integration test gate
Currently there are no integration tests in tree, so the job just
builds the docker image.
* fixup license
---
.test-infra/jenkins/common_job_properties.groovy | 28 +++++----
.../job_pulsar_precommit_integrationtests.groovy | 67 ++++++++++++++++++++++
tests/scripts/post-integ-tests.sh | 22 +++++++
tests/scripts/pre-integ-tests.sh | 29 ++++++++++
4 files changed, 136 insertions(+), 10 deletions(-)
diff --git a/.test-infra/jenkins/common_job_properties.groovy b/.test-infra/jenkins/common_job_properties.groovy
index c9e48fd..08c883d 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 0000000..7a08418
--- /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 0000000..8af7ab8
--- /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 0000000..e5dec32
--- /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
+
--
To stop receiving notification emails like this one, please contact
mmerli@apache.org.