每当我尝试使用buildingTag()
创建条件阶段时,该阶段总是被跳过,即使当前提交是一个标记。
pipeline {
agent {
docker {
image 'node:10'
}
}
stages {
stage('Build') {
steps {
sh 'yarn install'
sh 'node scripts/build.js'
}
}
stage('Lint') {
steps {
sh 'yarn lint'
}
}
stage('Deploy') {
when {
buildingTag()
}
environment {
}
steps {
sh 'node scripts/deploy.js'
sh 'node scripts/publish.js'
}
}
}
}
4条答案
按热度按时间9rbhqvlz1#
可能是由于此错误:
https://issues.jenkins-ci.org/browse/JENKINS-55987
解决方法是:
与:
mitkmikd2#
buildingTag()
要求设置TAG_NAME
环境变量。在简单(非多分支)管道中不会自动设置此值。
nlejzf6q3#
我也遇到了这个问题。你所需要做的就是在项目设置中启用
Advanced clone behaviours -> Fetch tags
,并在Jenkins文件中设置TAG_NAME
环境变量。1-高级克隆行为
2-提取标记
3-并在管道中设置
TAG_NAME
变量(buildingTag
函数需要此变量)4-使用Jenkins的
buildingTag
函数检查commit是否有标记zf2sa74q4#
我一直在使用soru的解决方案,但是在构建一个带标签的分支时遇到了问题,所以我尝试了这个方法,它看起来很有效: