gpt4 book ai didi

git describe --tags 不适用于 Jenkins 管道构建

转载 作者:行者123 更新时间:2023-12-03 21:16:52 27 4
gpt4 key购买 nike

我见过this question这朝着类似的方向发展,但不完全相同。问题在于标签没有正确推送。

我目前正在使用 Jenkins 来构建我的 Python 项目 setuptools_scm ,基本上使用 git describe获得(或多或少)合理的版本号,即使不在标签上。管道是使用 JobDSL 中的种子作业定义的,如下所示(缩写为了解 Gist ):

import BuildProjects

BuildProjects.build_projects.each { def bproject ->
multibranchPipelineJob("tool/${bproject}") {
branchSources {
branchSource {
source {
git {
id('tool_${bproject}')
remote("${BuildProjects.scmBaseLocation}/${bproject}.git")
credentialsId(BuildProjects.scmUser)
traits {
gitBranchDiscovery()
gitTagDiscovery()
cloneOptionTrait {
extension {
shallow(false)
noTags(false)
reference('grmblwrx')
timeout(1)
}
}
}
}
}
}
}

}
}

一些配置值取自 BuildProjects .

运行 jenkins 时,我看到它获取标签:
 > git fetch --tags --progress -- ssh://git@git.my-company.net/tools.git +refs/heads/*:refs/remotes/origin/* # timeout=1

事实上,当我使用 Jenkinsfile 输出标签时,我可以看到标签
sh "git tag"

堵塞。但是使用
sh "git describe --tags"


fatal: No tags can describe '<Commit hash>'.
Try --always, or create some tags.

我在某处读到这可能是由于 checkout 稀疏造成的:标签和当前 HEAD 之间的提交可能丢失。仔细检查后,我在我的日志中发现
> git config core.sparsecheckout # timeout=10
> git checkout -f <Commit hash> # timeout=10

紧跟在 git fetch 之后上面显示的行。似乎不知何故我在 JobDSL 中的配置没有得到尊重。有任何想法吗?

最佳答案

如果确实如此,自 2018 年 git 插件 3.4.0 起,Jenkins 管道默认使用窄 refspec 进行克隆,并且没有标签。
这在 allegro/axion-release-plugin issue 195 中有说明, 和 documented allegro/axion-release-plugin PR 198 .

raster-foundry/raster-foundry PR 4233 中所见, 检查您的 checkout scm step and its cloneOptions :

node {
try {
// Checkout the proper revision into the workspace.
stage('checkout') {
checkout([
$class: 'GitSCM',
branches: scm.branches,
extensions: scm.extensions + [[$class: 'CloneOption', noTags: false, reference: '', shallow: false]],
userRemoteConfigs: scm.userRemoteConfigs
])
}
...

试试 noTags: false, reference: '', shallow: false ,看看问题是否仍然存在。

关于git describe --tags 不适用于 Jenkins 管道构建,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/59790136/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com