gpt4 book ai didi

azure-devops - Azure Devops 中是否有 $(SourceVersion) 的 7 位短版本?

转载 作者:行者123 更新时间:2023-12-02 00:51:50 27 4
gpt4 key购买 nike

我正在尝试将我们的构建名称设置为...
$(BuildDefinitionName)_$(versionMajor).$(versionMinor).$(versionPatch)+$(SourceBranchName).$(SourceVersion)例如OurBigLibraryCI_1.2.3+master.10bbc577
但是我找不到任何包含提交哈希的“短”(7 位)版本的预定义变量。 $(SourceVersion)保存完整的 SHA-1 哈希值。

如何在基于 yaml 的管道中缩短它?

最佳答案

您可以通过反引号使用传统的命令替换来获取短 git 哈希(SHA-1),假设代码正在 $(Build.SourcesDirectory) 中 check out 。 :

  - bash: |
short_hash=`git rev-parse --short=7 HEAD` ## At least 7 digits, more if needed for uniqueness
echo ""
echo "Full git hash: $(Build.SourceVersion)"
echo "Short git hash: $short_hash"
echo "##vso[task.setvariable variable=short_hash]$short_hash" ## Store variable for subsequent steps
workingDirectory: $(Build.SourcesDirectory)
displayName: Get short git hash
输出:
Full git hash:  f8d63b1aaa20cf348a9b5fc6477ac80ed23d5ca0
Short git hash: f8d63b1
然后,管道中的以下步骤可以通过变量 $(short_hash) 使用短哈希。 .
(这比手动将完整的 git 哈希减少到七个字符要好,因为如果需要唯一标识提交,这将添加额外的数字,请参阅 https://stackoverflow.com/a/21015031/1447415. )
更新:改进版
以下改进版本检查 git 哈希是否匹配(完整哈希以短哈希开头),否则该步骤将失败:
  - bash: |
short_hash=`git rev-parse --short=7 HEAD`
echo ""
echo "Full git hash: $(Build.SourceVersion)"
echo "Short git hash: $short_hash"
echo ""
## Fail step if full hash does not start with short hash
if [[ $(Build.SourceVersion) != $short_hash* ]]; then
echo "--> Hashes do not match! Aborting."
exit 1
fi
echo "--> Hashes match. Storing short hash for subsequent steps."
## Store variable for subsequent steps
echo "##vso[task.setvariable variable=short_hash]$short_hash"
workingDirectory: $(Build.SourcesDirectory)
displayName: Get short git hash

关于azure-devops - Azure Devops 中是否有 $(SourceVersion) 的 7 位短版本?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/56973612/

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