我正在使用GitLab管道并在.gitlab-ci.yml
文件中定义了我的构建定义。
我正在使用它来构建docker容器。
简单的问题。有没有办法可以用gitlab中的semver或时间戳标记我的docker容器。
内置变量似乎没有给我太多帮助。
在Windows上,我之前能够在powershell中使用GitVersion
来获取semver标记并将其放入可以在构建过程的其余部分中使用的变量中。
如果我不能这样做,是否可以从操作系统获取时间戳并在yml文件中使用它?
答案 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 月)
<块引用>以前,如果您想引用作业开始的确切日期和时间
或者创建了管道,您需要在脚本中检索这些时间戳。
现在,通过使用 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 的贡献!
参见 Documentation 和 Issue。