在gitlab piplelines

时间:2017-10-18 13:02:02

标签: gitlab gitlab-ci gitlab-ci-runner semantic-versioning

我正在使用GitLab管道并在.gitlab-ci.yml文件中定义了我的构建定义。

我正在使用它来构建docker容器。

简单的问题。有没有办法可以用gitlab中的semver或时间戳标记我的docker容器。

内置变量似乎没有给我太多帮助。

在Windows上,我之前能够在powershell中使用GitVersion来获取semver标记并将其放入可以在构建过程的其余部分中使用的变量中。

如果我不能这样做,是否可以从操作系统获取时间戳并在yml文件中使用它?

2 个答案:

答案 0 :(得分:5)

您可以像这样使用CREATE TRIGGER [dbo].[YourTrigger] ON [dbo].[YourTable] FOR INSERT AS BEGIN DECLARE @ID AS INT SET @ID = SELECT yourID FROM INSERTED UPDATE YourTable SET field1 = field2 WHERE yourID = @ID END 中的时间戳(取自我们自己创建.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进行unixtimestamp。

根据您的(git)流程,您还可以使用Gitlab CI env vars提供的branch-slugs

答案 1 :(得分:2)

关于时间戳,另一种方法是使用与当前管道关联的现有变量。

参见 GitLab 13.10(2021 年 3 月)

<块引用>

用于作业开始和管道创建时间戳的预定义 CI/CD 变量

以前,如果您想引用作业开始的确切日期和时间 或者创建了管道,您需要在脚本中检索这些时间戳。 现在,通过使用 Container( alignment: Alignment.bottomCenter, child: StreamBuilder( stream: firebaseFirestoreOperations.usersRef .doc(firebaseFirestoreOperations.getUserId()) .collection('Cart') .doc('9oNFPyrUPN9wORFsyqvY') .snapshots(), builder: (context, snapshot) { var price = snapshot.data['price']; return CartBottomBar( totalPrice: price, ); }), ), CI_JOB_STARTED_AT,以 ISO 8601 格式和 UTC 时区提供。

感谢 @Winkies 的贡献!

参见 DocumentationIssue