我目前正在设置用于推送 nuget 包的 ci/cd 管道。
我想将内置CI_COMMIT_TIMESTAMP用于版本后缀,但其ISO 8601格式对此无效。
示例 ISO 8601 (UTC):2022-03-15T18:34:43Z
至少需要更换冒号。
是否可以以不同的方式格式化它或进行某种文本替换?
您无法更改变量的显示方式,但可以重新格式化作业中的值。
unixdate
命令可以做到这一点。例如,您可以将任何有效格式声明为所需的输出格式。
MY_JOB:
variables:
DESIRED_FORMAT: "%Y-%m-%dT%H-%M-%S"
script:
- nuget_format="$(date -d "$CI_COMMIT_TIMESTAMP" +"$DESIRED_FORMAT")"
- echo "$nuget_format"
这将有一个如下输出:
2022-03-15T23-43-17
另一种方法是使用sed
将出现的:
替换为-
。
script:
- nuget_time_format="$(sed "s/:/-/g" <<< $CI_COMMIT_TIMESTAMP)"
- echo "$nuget_time_format"