You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@archiva.apache.org by ma...@apache.org on 2018/05/04 17:31:17 UTC

[archiva] branch master updated (e80bef2 -> d066aa3)

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

martin_s pushed a change to branch master
in repository https://gitbox.apache.org/repos/asf/archiva.git.


    from e80bef2  Fixing publisher deactivation syntax
     new ec280b4  Changing check for fixed builds
     new d066aa3  Adding Jenkinsfile for webui tests

The 2 revisions listed above as "new" are entirely new to this
repository and will be described in separate emails.  The revisions
listed as "add" were already present in the repository and have only
been added to this reference.


Summary of changes:
 Jenkinsfile       |  41 ++++++++++--
 Jenkinsfile-itest | 194 ++++++++++++++++++++++++++++++++++++++++++++++++++++++
 2 files changed, 229 insertions(+), 6 deletions(-)
 create mode 100644 Jenkinsfile-itest

-- 
To stop receiving notification emails like this one, please contact
martin_s@apache.org.

[archiva] 01/02: Changing check for fixed builds

Posted by ma...@apache.org.
This is an automated email from the ASF dual-hosted git repository.

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

commit ec280b48e13c4a261813a4fb21c9d427e2aeb112
Author: Martin Stockhammer <ma...@ars.de>
AuthorDate: Fri May 4 19:30:15 2018 +0200

    Changing check for fixed builds
---
 Jenkinsfile | 41 +++++++++++++++++++++++++++++++++++------
 1 file changed, 35 insertions(+), 6 deletions(-)

diff --git a/Jenkinsfile b/Jenkinsfile
index ecbc9f9..29cf71f 100644
--- a/Jenkinsfile
+++ b/Jenkinsfile
@@ -1,3 +1,32 @@
+/*
+ * 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.
+ */
+
+/**
+ * Main build file for Jenkins Multibranch pipeline.
+ *
+ * The pipeline builds, runs the test and deploys to the archiva snapshot repository.
+ *
+ * Uses one stage for build and deploy to avoid running it multiple times.
+ * The settings for deployment with the credentials must be provided by a MavenSettingsProvider.
+ *
+ * Only the war and zip artifacts are archived in the jenkins build archive.
+ */
 LABEL = 'ubuntu'
 buildJdk = 'JDK 1.8 (latest)'
 buildMvn = 'Maven 3.5.2'
@@ -20,7 +49,7 @@ pipeline {
             }
             post {
                 failure {
-                    notifyBuild("Checkout failure")
+                    notifyBuild("Checkout failure (${currentBuild.currentResult})")
                 }
             }
         }
@@ -64,13 +93,13 @@ pipeline {
                     archiveArtifacts '**/target/*.war,**/target/*-bin.zip'
                     script {
                         def previousResult = currentBuild.previousBuild?.result
-                        if (previousResult && previousResult != currentBuild.result) {
-                            notifyBuild("Fixed")
+                        if (previousResult && !currentBuild.isWorseOrEqual(previousResult)) {
+                            notifyBuild("Fixed: ${currentBuild.currentResult}")
                         }
                     }
                 }
                 failure {
-                    notifyBuild("Build / Test failure")
+                    notifyBuild("Build / Test failure (${currentBuild.currentResult})")
                 }
             }
         }
@@ -78,7 +107,7 @@ pipeline {
     }
     post {
         unstable {
-            notifyBuild("Unstable Build")
+            notifyBuild("Unstable Build (${currentBuild.currentResult})")
         }
         always {
             cleanWs deleteDirs: true, notFailBuild: true, patterns: [[pattern: '.repository', type: 'EXCLUDE']]
@@ -92,7 +121,7 @@ def notifyBuild(String buildStatus) {
     buildStatus = buildStatus ?: "UNKNOWN"
 
     def email = "notifications@archiva.apache.org"
-    def summary = "${env.JOB_NAME}#${env.BUILD_NUMBER} - ${buildStatus}"
+    def summary = "${env.JOB_NAME}#${env.BUILD_NUMBER} - ${buildStatus} - ${currentBuild?.currentStatus}"
     def detail = """<h4>Job: <a href='${env.JOB_URL}'>${env.JOB_NAME}</a> [#${env.BUILD_NUMBER}]</h4>
   <p><b>${buildStatus}</b></p>
   <table>

-- 
To stop receiving notification emails like this one, please contact
martin_s@apache.org.

[archiva] 02/02: Adding Jenkinsfile for webui tests

Posted by ma...@apache.org.
This is an automated email from the ASF dual-hosted git repository.

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

commit d066aa32ebfe2ead4f9a99879845602fde6b32be
Author: Martin Stockhammer <ma...@ars.de>
AuthorDate: Fri May 4 19:30:47 2018 +0200

    Adding Jenkinsfile for webui tests
---
 Jenkinsfile-itest | 194 ++++++++++++++++++++++++++++++++++++++++++++++++++++++
 1 file changed, 194 insertions(+)

diff --git a/Jenkinsfile-itest b/Jenkinsfile-itest
new file mode 100644
index 0000000..f8ecb26
--- /dev/null
+++ b/Jenkinsfile-itest
@@ -0,0 +1,194 @@
+/*
+ * 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.
+ */
+
+/**
+ * UI-Test Build file for Jenkins Multibranch pipeline.
+ *
+ * The pipeline runs only the UI tests.
+ *
+ */
+
+LABEL = 'ubuntu'
+buildJdk = 'JDK 1.8 (latest)'
+buildMvn = 'Maven 3.5.2'
+deploySettings = 'DefaultMavenSettingsProvider.1331204114925'
+
+pipeline {
+    agent {
+        label "${LABEL}"
+    }
+
+    stages {
+
+
+        stage('Checkout') {
+            steps {
+                script {
+                    echo "Info: Job-Name=${JOB_NAME}, Branch=${BRANCH_NAME}, Workspace=${PWD}"
+                }
+                checkout scm
+            }
+            post {
+                failure {
+                    notifyBuild("Checkout failure (${currentBuild.currentResult})")
+                }
+            }
+        }
+
+        stage('Test htmlunit') {
+            steps {
+                timeout(120) {
+                    withMaven(maven: buildMvn, jdk: buildJdk,
+                            mavenSettingsConfig: deploySettings,
+                            mavenLocalRepo: ".repository",
+                            options: [concordionPublisher(disabled: true), dependenciesFingerprintPublisher(disabled: true),
+                                      findbugsPublisher(disabled: true), artifactsPublisher(disabled: true),
+                                      invokerPublisher(disabled: true), jgivenPublisher(disabled: true),
+                                      junitPublisher(disabled: true, ignoreAttachments: false),
+                                      openTasksPublisher(disabled: true), pipelineGraphPublisher(disabled: true)]
+                    )
+                            {
+                                sh "chmod 755 ./src/ci/scripts/prepareWorkspace.sh"
+                                sh "./src/ci/scripts/prepareWorkspace.sh"
+                                // Needs a lot of time to reload the repository files, try without cleanup
+                                // Not sure, but maybe
+                                // sh "rm -rf .repository"
+
+                                // Run test phase / ignore test failures
+                                // -B: Batch mode
+                                // -U: Force snapshot update
+                                // -e: Produce execution error messages
+                                // -fae: Fail at the end
+                                // -Dmaven.compiler.fork=true: Compile in a separate forked process
+                                // -Pci-server: Profile for CI-Server
+                                // -Pit-js: Run the selenium testsh
+                                sh "mvn clean install -B -V -U -e -fae -Dmaven.compiler.fork=true -DmaxWaitTimeInMs=2000 -Pci-server -Pit-js -DtrimStackTrace=false -pl :archiva-webapp-test"
+
+                            }
+                }
+            }
+            post {
+                always {
+                    junit testResults: '**/target/surefire-reports/TEST-*.xml'
+                }
+                success {
+                    script {
+                        def previousResult = currentBuild.previousBuild?.result
+                        if (previousResult && !currentBuild.isWorseOrEqual(previousResult)) {
+                            notifyBuild("Fixed: ${currentBuild.currentResult}")
+                        }
+                    }
+                }
+                failure {
+                    notifyBuild("Build / Test failure (${currentBuild.currentResult})")
+                }
+            }
+        }
+
+        // Uses a docker container that is started by script. Maybe we could use the docker functionality
+        // of the jenkins pipeline in the future.
+        stage('Test chrome') {
+            steps {
+                timeout(120) {
+                    withMaven(maven: buildMvn, jdk: buildJdk,
+                            mavenSettingsConfig: deploySettings,
+                            mavenLocalRepo: ".repository",
+                            options: [concordionPublisher(disabled: true), dependenciesFingerprintPublisher(disabled: true),
+                                      findbugsPublisher(disabled: true), artifactsPublisher(disabled: true),
+                                      invokerPublisher(disabled: true), jgivenPublisher(disabled: true),
+                                      junitPublisher(disabled: true, ignoreAttachments: false),
+                                      openTasksPublisher(disabled: true), pipelineGraphPublisher(disabled: true)]
+                    )
+                            {
+                                sh "chmod 755 ./src/ci/scripts/prepareWorkspace.sh"
+                                sh "./src/ci/scripts/prepareWorkspace.sh"
+                                sh "chmod 755 src/ci/scripts/container_webtest.sh"
+                                sh "src/ci/scripts/container_webtest.sh start"
+                                // Needs a lot of time to reload the repository files, try without cleanup
+                                // Not sure, but maybe
+                                // sh "rm -rf .repository"
+
+                                // Run test phase / ignore test failures
+                                // -B: Batch mode
+                                // -U: Force snapshot update
+                                // -e: Produce execution error messages
+                                // -fae: Fail at the end
+                                // -Pci-server: Profile for CI Server
+                                // -Pit-js: Runs the Selenium tests
+                                // -Pchrome: Activates the Selenium Chrome Test Agent
+                                sh "mvn clean install -B -V -U -e -fae -Dmaven.compiler.fork=true -DmaxWaitTimeInMs=2000 -DseleniumRemote=true -Pci-server -Pit-js -Pchrome -pl :archiva-webapp-test -DtrimStackTrace=false"
+
+                            }
+                }
+            }
+            post {
+                always {
+                    sh "src/ci/scripts/container_webtest.sh stop"
+                    junit testResults: '**/target/surefire-reports/TEST-*.xml'
+                }
+                success {
+                    script {
+                        def previousResult = currentBuild.previousBuild?.result
+                        if (previousResult && !currentBuild.isWorseOrEqual(previousResult)) {
+                            notifyBuild("Fixed: ${currentBuild.currentResult}")
+                        }
+                    }
+                }
+                failure {
+                    notifyBuild("Build / Test failure (${currentBuild.currentResult})")
+                }
+            }
+        }
+
+    }
+    post {
+        unstable {
+            notifyBuild("Unstable Build (${currentBuild.currentResult})")
+        }
+        always {
+            cleanWs deleteDirs: true, notFailBuild: true, patterns: [[pattern: '.repository', type: 'EXCLUDE']]
+        }
+    }
+}
+
+// Send a notification about the build status
+def notifyBuild(String buildStatus) {
+    // default the value
+    buildStatus = buildStatus ?: "UNKNOWN"
+
+    def email = "notifications@archiva.apache.org"
+    def summary = "${env.JOB_NAME}#${env.BUILD_NUMBER} - ${buildStatus} - ${currentBuild?.currentStatus}"
+    def detail = """<h4>Job: <a href='${env.JOB_URL}'>${env.JOB_NAME}</a> [#${env.BUILD_NUMBER}]</h4>
+  <p><b>${buildStatus}</b></p>
+  <table>
+    <tr><td>Build</td><td><a href='${env.BUILD_URL}'>${env.BUILD_URL}</a></td><tr>
+    <tr><td>Console</td><td><a href='${env.BUILD_URL}console'>${env.BUILD_URL}console</a></td><tr>
+    <tr><td>Test Report</td><td><a href='${env.BUILD_URL}testReport/'>${env.BUILD_URL}testReport/</a></td><tr>
+  </table>
+  """
+
+    emailext(
+            to: email,
+            subject: summary,
+            body: detail,
+            mimeType: 'text/html'
+    )
+}
+
+// vim: et:ts=2:sw=2:ft=groovy

-- 
To stop receiving notification emails like this one, please contact
martin_s@apache.org.