Rem*_*tec 2 semantic-versioning gitlab gitlab-ci gitlab-ci-runner
我正在使用GitLab管道,并在.gitlab-ci.yml文件中定义了我的构建定义。
我正在用它来构建docker容器。
简单的问题。有没有一种方法可以用gitlab中的semver或时间戳标记我的docker容器。
内置变量似乎并没有给我太多帮助。
在Windows上,我以前可以GitVersion在Powershell中使用它来获取semver标签并将其放入一个变量中,以便在其余的构建过程中使用。
如果无法执行此操作,是否可以从操作系统获取时间戳并将其用于yml文件?
关于时间戳,另一种方法是使用与当前管道关联的现有变量。
请参阅GitLab 13.10(2021 年 3 月)
用于作业启动和管道创建时间戳的预定义 CI/CD 变量
以前,如果您想引用作业启动或创建管道的确切日期和时间,则需要在脚本中检索这些时间戳。
CI_JOB_STARTED_AT现在,可以通过使用和 轻松将它们用作预定义的 CI/CD 变量CI_PIPELINE_CREATED_AT,并以 ISO 8601 格式和 UTC 时区提供。感谢@Winkies的贡献!
不幸的是,这个变量不能直接用作图像标签。正如在引用的实现问题中看到的,该变量的输出类似于2021-03-18T04:45:29Z。直接使用,您的图像看起来像是myimage:2021-03-18T04:45:29Z无效的。
您可以对变量执行简单的字符串操作。
例如,${CI_PIPELINE_CREATED_AT:0:10}将为您提供前十个符号:2021-03-18out of2021-03-18T04:45:29Z。
您可以在“在 Bash 中提取子字符串”中查看更多信息。
您可以.gitlab-ci.yml像这样使用时间戳记(摘自我们自己的用法,用于创建<year>.<month>标签和发行版:
job-1:
script:
- export VERSION=$(date +%y.%m)
- docker build -t myregistry/project/image:$VERSION
Run Code Online (Sandbox Code Playgroud)
这将导致图像标签如下: myregistry/project/image:17.10
您可以使用date +%s代替date +%y.%munixtimestamp。
根据您的(git)流,您还可以使用Gitlab CI env vars提供的分支子弹
| 归档时间: |
|
| 查看次数: |
2634 次 |
| 最近记录: |