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-jdk8' } } parameters { string(name: 'TAG_NAME', defaultValue: '', description: '[MANDATORY] Name of the Tag to create the branch from') string(name: 'BRANCH_NAME', defaultValue: '', description: '[MANDATORY] The desired name of the new branch') } stages { stage('Release') { steps { sshagent( credentials: ['pegasys-admin-github-ssh-private-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') sh "./branch-from-tag.sh ${params.TAG_NAME} ${params.BRANCH_NAME}" } } } } } }