blob: f7c905bfb80d27588d000fcc2fc4e938cb80fdb4 [file] [log] [blame]
// 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.
pipeline {
agent any
tools {
maven 'Maven (latest)'
jdk 'JDK 1.8 (latest)'
}
options {
buildDiscarder(logRotator(
numToKeepStr: '25',
artifactNumToKeepStr: '5'
))
// Seems not to be working reliably yet: https://issues.jenkins-ci.org/browse/JENKINS-48556
// timestamps()
}
parameters {
string(
name: 'extraMavenArguments',
defaultValue: "",
description: "Extra arguments to be passed to maven (for testing)")
}
stages {
// Display information about the build environemnt. This can be useful for debugging
// build issues.
stage("Build info") {
steps {
echo '=== Environment variables ==='
sh 'printenv'
}
}
// Perform a merge request build. This is a conditional stage executed with the GitLab
// sources plugin triggers a build for a merge request. To avoid conflicts with other
// builds, this stage should not deploy artifacts to the Maven repository server and
// also not install them locally.
stage("Pull request build") {
when { branch 'PR-*' }
steps {
script {
currentBuild.description = 'Triggered by: <a href="' + CHANGE_URL + '">' + BRANCH_NAME +
': ' + env.CHANGE_BRANCH + '</a> (' + env.CHANGE_AUTHOR_DISPLAY_NAME + ')'
}
withMaven() {
sh script: 'mvn ' +
params.extraMavenArguments +
' -U -Dmaven.test.failure.ignore=true clean verify'
}
}
}
// Perform a SNAPSHOT build of a main branch. This stage is typically executed after a
// merge request has been merged. On success, it deploys the generated artifacts to the
// Maven repository server.
stage("SNAPSHOT build") {
when { branch pattern: "master|master-v2", comparator: "REGEXP" }
steps {
withMaven() {
sh script: 'mvn ' +
params.extraMavenArguments +
' -U -Dmaven.test.failure.ignore=true clean deploy'
}
}
}
}
}