更改时间戳变量格式或进行替换
Change timestamp variable format or do replacement
我目前正在设置 ci/cd 用于推送 nuget 包的管道。
我想使用内置的 CI_COMMIT_TIMESTAMP 作为版本后缀,但是它的 ISO 8601 格式对此无效。
示例 ISO 8601 (UTC):2022-03-15T18:34:43Z
至少需要替换冒号。
是否可以采用不同的格式或进行某种文本替换?
您无法更改变量的显示方式,但可以在作业中重新设置值的格式。
unix date
命令可以做到这一点。例如,您可以将任何有效格式声明为所需的输出格式。
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"
我目前正在设置 ci/cd 用于推送 nuget 包的管道。
我想使用内置的 CI_COMMIT_TIMESTAMP 作为版本后缀,但是它的 ISO 8601 格式对此无效。
示例 ISO 8601 (UTC):2022-03-15T18:34:43Z
至少需要替换冒号。
是否可以采用不同的格式或进行某种文本替换?
您无法更改变量的显示方式,但可以在作业中重新设置值的格式。
unix date
命令可以做到这一点。例如,您可以将任何有效格式声明为所需的输出格式。
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"