Jenkins 检测 gitlab 上哪个分支发生了提交
Jenkins 检测 gitlab 上哪个分支发生了提交。
·
获取最新一次提交的分支名
直接上代码
// 获取最新一次提交的分支名
def detect_branch() {
def RESULT = sh(returnStdout: true, script: '''
cd src
for branch in `git branch -r | grep -v HEAD`; do echo -e `git show --format="%ci %cr" $branch | head -n 1` "\\t" $branch; done | sort -r |head -n 1 |awk \'{print $NF}\'
''') // 获取分支名如:origin/develop
def content = "RESULT=$RESULT\n"
RESULT=sh(returnStdout: true, script: content+'echo $RESULT|sed "s#origin/##g"') // 删除 origin
return RESULT
}
pipeline {
agent {
label "master" //指定节点名称
}
stages {
stage('拉取代码') {
steps {
step([$class: 'WsCleanup']) //清理空间
checkout([$class: 'GitSCM',
branches: [[name: 'master']], // 任意分支 博主用的master
extensions: [[$class: 'RelativeTargetDirectory', relativeTargetDir: 'src']],// 下载代码放到 ${WORKSPACE}/src 中
userRemoteConfigs: [[
credentialsId: 'credentialsId', // credentialsId 在jenkins 凭据管理处获得
url: 'http://gitlab.net/test.git' // gitlab链接
]]
])
script {
def Branch = detect_branch()
if ("master" != "$Branch") {
echo "$Branch" // 拿到想要的分支了 可以进行下一步构建了
}
}
}
}
}
}
更多推荐
已为社区贡献1条内容
所有评论(0)