|
|
|
void tryAddKnownHost(String hostUrl){
|
|
|
|
// ssh-keygen -F ${hostUrl} will fail (in bash that means status code != 0) if ${hostUrl} is not yet a known host
|
|
|
|
def statusCode = sh script:"ssh-keygen -F ${hostUrl}", returnStatus:true
|
|
|
|
if(statusCode != 0){
|
|
|
|
sh "mkdir -p ~/.ssh"
|
|
|
|
sh "ssh-keyscan ${hostUrl} >> ~/.ssh/known_hosts"
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|
|
|
|
pipeline {
|
|
|
|
agent {
|
|
|
|
docker { image 'pegasyseng/pantheon-build:0.0.5-jdk11' }
|
|
|
|
}
|
|
|
|
parameters {
|
|
|
|
string(name: 'BRANCH_NAME', defaultValue: 'master', description: '[MANDATORY] The name of the branch to create the release from')
|
|
|
|
string(name: 'RELEASE_VERSION', defaultValue: '', description: '[OPTIONAL] When empty: defaults to the current project version')
|
|
|
|
string(name: 'NEXT_VERSION', defaultValue: '', description: '[OPTIONAL] When empty: defaults to next patch version after current project version')
|
|
|
|
}
|
|
|
|
|
|
|
|
stages {
|
|
|
|
stage('Release') {
|
|
|
|
steps {
|
|
|
|
sshagent(
|
|
|
|
credentials: ['pegasys-admin-github-ssh-private-key']
|
|
|
|
) {
|
|
|
|
withCredentials([
|
|
|
|
usernamePassword(
|
|
|
|
credentialsId: 'pegasys-bintray',
|
|
|
|
usernameVariable: 'BINTRAY_USER',
|
|
|
|
passwordVariable: 'BINTRAY_KEY'
|
|
|
|
)
|
|
|
|
]) {
|
|
|
|
withEnv([
|
|
|
|
'GIT_COMMITTER_NAME="PegaSys Admin"',
|
|
|
|
'GIT_COMMITTER_EMAIL="pegasys.manager@gmail.com"',
|
|
|
|
'GIT_AUTHOR_NAME="PegaSys Admin"',
|
|
|
|
'GIT_AUTHOR_EMAIL="pegasys.manager@gmail.com"'
|
|
|
|
]) {
|
|
|
|
tryAddKnownHost('github.com')
|
|
|
|
|
|
|
|
script{
|
|
|
|
releaseVersion = ''
|
|
|
|
if( params.RELEASE_VERSION?.trim() ){
|
|
|
|
releaseVersion = "-Prelease.releaseVersion=${params.RELEASE_VERSION}"
|
|
|
|
}
|
|
|
|
|
|
|
|
nextVersion = ''
|
|
|
|
if( params.NEXT_VERSION?.trim() ){
|
|
|
|
nextVersion = "-Prelease.newVersion=${params.NEXT_VERSION}"
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
sh "./gradlew release -Prelease.useAutomaticVersion=true -Prelease.branch=${params.BRANCH_NAME} ${releaseVersion} ${nextVersion}"
|
|
|
|
}
|
|
|
|
}
|
|
|
|
}
|
|
|
|
}
|
|
|
|
}
|
|
|
|
}
|
|
|
|
}
|