如何为Azure DevOps YAML管道构建编号添加前导零格式化?
解决Azure DevOps管道构建编号4位带前导零(支持十进制/十六进制)的问题
十进制4位带前导零
你之前的写法报错是因为Azure DevOps表达式的format函数不支持对Number类型使用D4格式说明符,换成以下两种写法都可以:
写法1:使用padStart字符串补零
name: $[padStart(string(counter('build-counter', 0)), 4, '0')]
counter('build-counter', 0):创建名为build-counter的计数器,初始值为0,每次管道运行自动递增1string():将计数器的数字结果转换为字符串padStart(4, '0'):在字符串左侧补0,直到总长度达到4位
写法2:使用format的0000格式符
name: $[format('{0:0000}', counter('build-counter', 0))]
{0:0000}:指定数字格式为4位,不足位数时自动在左侧补0,该格式符是Azure DevOps表达式原生支持的
十六进制4位带前导零
如果需要十六进制格式,可通过toString(16)将数字转为十六进制字符串后补零:
小写十六进制
name: $[padStart(string(counter('hex-build-counter', 0)).toString(16), 4, '0')]
大写十六进制
name: $[padStart(upper(string(counter('hex-build-counter', 0)).toString(16)), 4, '0')]
toString(16):将数字转为小写十六进制字符串upper():将十六进制字符串转为大写格式padStart(4, '0'):补零到4位,比如数字255会转为00ff(小写)或00FF(大写)
内容的提问来源于stack exchange,提问作者Liberty009
相关产品推荐
相关产品推荐

