brooklyn-commits mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From geom...@apache.org
Subject [1/2] brooklyn-library git commit: Add Jenkinsfile for CI build
Date Wed, 02 May 2018 10:53:26 GMT
Repository: brooklyn-library
Updated Branches:
  refs/heads/master 564e0bbe3 -> 934ab1a03


Add Jenkinsfile for CI build


Project: http://git-wip-us.apache.org/repos/asf/brooklyn-library/repo
Commit: http://git-wip-us.apache.org/repos/asf/brooklyn-library/commit/a85a625a
Tree: http://git-wip-us.apache.org/repos/asf/brooklyn-library/tree/a85a625a
Diff: http://git-wip-us.apache.org/repos/asf/brooklyn-library/diff/a85a625a

Branch: refs/heads/master
Commit: a85a625ada7c806c680dae47ed27843e2e338871
Parents: ceebbb3
Author: Thomas Bouron <thomas.bouron@cloudsoftcorp.com>
Authored: Wed Nov 22 15:50:32 2017 +0000
Committer: Thomas Bouron <thomas.bouron@cloudsoftcorp.com>
Committed: Wed May 2 11:40:37 2018 +0100

----------------------------------------------------------------------
 Jenkinsfile | 82 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++
 1 file changed, 82 insertions(+)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/brooklyn-library/blob/a85a625a/Jenkinsfile
----------------------------------------------------------------------
diff --git a/Jenkinsfile b/Jenkinsfile
new file mode 100644
index 0000000..42af8b3
--- /dev/null
+++ b/Jenkinsfile
@@ -0,0 +1,82 @@
+/*
+ * 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.
+ */
+
+node(label: 'ubuntu') {
+    catchError {
+        def environmentDockerImage
+
+        def dockerTag = env.BUILD_TAG.replace('%2F', '-')
+
+        withEnv(["DOCKER_TAG=${dockerTag}"]) {
+            stage('Clone repository') {
+                checkout scm
+            }
+
+            stage('Prepare environment') {
+                echo 'Creating maven cache ...'
+                sh 'mkdir -p ${WORKSPACE}/.m2'
+                echo 'Building docker image for test environment ...'
+                environmentDockerImage = docker.build('brooklyn:${DOCKER_TAG}')
+            }
+
+            stage('Run tests') {
+                environmentDockerImage.inside('-i --name brooklyn-${DOCKER_TAG} -v ${WORKSPACE}/.m2:/root/.m2
-v ${WORKSPACE}:/usr/build -w /usr/build') {
+                    sh 'mvn clean install'
+                }
+            }
+
+            // Conditional stage to deploy artifacts, when not building a PR
+            if (env.CHANGE_ID == null) {
+                stage('Deploy artifacts') {
+                    environmentDockerImage.inside('-i --name brooklyn-${DOCKER_TAG} -v ${WORKSPACE}/.m2:/root/.m2
-v ${WORKSPACE}:/usr/build -w /usr/build') {
+                        sh 'mvn deploy -DskipTests'
+                    }
+                }
+
+                // TODO: Publish docker image to https://hub.docker.com/r/apache/brooklyn/
?
+            }
+        }
+    }
+
+    // ---- Post actions steps, to always perform ----
+
+    stage('Publish test results') {
+        // Publish JUnit results
+        junit allowEmptyResults: true, testResults: '**/target/surefire-reports/junitreports/*.xml'
+
+        // Publish TestNG results
+        step([
+            $class: 'Publisher',
+            reportFilenamePattern: '**/testng-results.xml'
+        ])
+    }
+
+    // Conditional stage, when not building a PR
+    if (env.CHANGE_ID == null) {
+        stage('Send notifications') {
+            // Send email notifications
+            step([
+                $class: 'Mailer',
+                notifyEveryUnstableBuild: true,
+                recipients: 'dev@brooklyn.apache.org',
+                sendToIndividuals: false
+            ])
+        }
+    }
+}
\ No newline at end of file


Mime
View raw message