在 gitlab 管道中使用 semver 或时间戳
Use semver or a timestamp in gitlab piplelines
我正在使用 GitLab 管道并在 .gitlab-ci.yml
文件中定义了我的构建定义。
我正在使用它构建 docker 个容器。
简单的问题。有没有一种方法可以用来自 gitlab 的 semver 或时间戳标记我的 docker 容器。
内置变量似乎没有太多用处。
在 Windows 之前,我已经能够在 powershell 中使用 GitVersion
,它获取 semver 标签并将其放入一个变量中,您可以在其余的构建过程中使用。
如果我做不到,是否可以从 OS 获取时间戳并在 yml 文件中使用它?
您可以像这样在 .gitlab-ci.yml
中使用时间戳(取自我们自己创建 <year>.<month>
标签和发布的用法:
job-1:
script:
- export VERSION=$(date +%y.%m)
- docker build -t myregistry/project/image:$VERSION
这会导致图像标记如下:myregistry/project/image:17.10
您可以使用 date +%s
而不是 date +%y.%m
作为 unixtimestamp。
根据您的 (git) 流程,您还可以使用 Gitlab CI env vars
提供的 branch-slugs
关于时间戳,另一种方法是使用与当前管道关联的现有变量。
参见 GitLab 13.10(2021 年 3 月)
Predefined CI/CD variables for job start and pipeline created timestamps
Previously, if you wanted to reference the exact date and time when a job started
or a pipeline was created, you needed to retrieve these timestamps in your scripts.
Now they are readily available as predefined CI/CD variables by using CI_JOB_STARTED_AT
and
CI_PIPELINE_CREATED_AT
, provided in the ISO 8601 format and UTC time zone.
Thanks to @Winkies for this contribution!
See Documentation and Issue.
遗憾的是,此变量不能直接用作图像标签。正如在 referenced implementation issue 中看到的,此变量的输出类似于 2021-03-18T04:45:29Z
。直接使用,您的图像看起来像 myimage:2021-03-18T04:45:29Z
,这是无效的。
我正在使用 GitLab 管道并在 .gitlab-ci.yml
文件中定义了我的构建定义。
我正在使用它构建 docker 个容器。
简单的问题。有没有一种方法可以用来自 gitlab 的 semver 或时间戳标记我的 docker 容器。
内置变量似乎没有太多用处。
在 Windows 之前,我已经能够在 powershell 中使用 GitVersion
,它获取 semver 标签并将其放入一个变量中,您可以在其余的构建过程中使用。
如果我做不到,是否可以从 OS 获取时间戳并在 yml 文件中使用它?
您可以像这样在 .gitlab-ci.yml
中使用时间戳(取自我们自己创建 <year>.<month>
标签和发布的用法:
job-1:
script:
- export VERSION=$(date +%y.%m)
- docker build -t myregistry/project/image:$VERSION
这会导致图像标记如下:myregistry/project/image:17.10
您可以使用 date +%s
而不是 date +%y.%m
作为 unixtimestamp。
根据您的 (git) 流程,您还可以使用 Gitlab CI env vars
提供的 branch-slugs关于时间戳,另一种方法是使用与当前管道关联的现有变量。
参见 GitLab 13.10(2021 年 3 月)
Predefined CI/CD variables for job start and pipeline created timestamps
Previously, if you wanted to reference the exact date and time when a job started or a pipeline was created, you needed to retrieve these timestamps in your scripts. Now they are readily available as predefined CI/CD variables by using
CI_JOB_STARTED_AT
andCI_PIPELINE_CREATED_AT
, provided in the ISO 8601 format and UTC time zone.Thanks to @Winkies for this contribution!
See Documentation and Issue.
遗憾的是,此变量不能直接用作图像标签。正如在 referenced implementation issue 中看到的,此变量的输出类似于 2021-03-18T04:45:29Z
。直接使用,您的图像看起来像 myimage:2021-03-18T04:45:29Z
,这是无效的。