blob: 6ed222e4d696f7625a3c7941d418581dfd1be39a [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 ==='
script {
if (isUnix()) {
sh 'printenv'
}
else {
bat 'set'
}
}
}
}
// 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: "main|main-v2", comparator: "REGEXP" }
steps {
withMaven() {
sh script: 'mvn ' +
params.extraMavenArguments +
' -U -Dmaven.test.failure.ignore=true clean deploy'
}
}
}
}
}