我看过文档,有些文章,你可能会叫我傻,但这是我第一次使用这样的概念。
但是我的作业究竟是如何依赖这些标签的呢?所有这些操作都是必要的吗?如果我将新代码推送到repo,* .yml文件无论如何都会在我测试时执行。
那么,如果我只想在提交中定义版本时才运行构建该怎么办?
... IDK
git commit --tags "v. 2.0" -m "this is version 2.0" (probably not right)
但当然它应该是通用的,所以我不必总是告诉使用哪个标签来触发转轮,但是例如让他识别数值。
正如你所看到的,我相当困惑......如果你能详细说明标签是如何工作的,那么我就能理解这个概念,我会非常感激。
答案 0 :(得分:31)
GitLab CI的标签和Git的标签是两个不同的概念。
当您编写.gitlab-ci.yml
时,您可以使用标记testing
指定一些作业。如果有关联此标签的跑步者可用,则会获得该作业。
在Git中,在您的存储库中,标记用于标记特定的提交。它通常用于标记版本。
当您使用标签(在Git中)在GitLab CI中启动管道时,这两个概念可能会混淆。在.gitlab-ci.yml
,您可以使用only
指定tags
部分。
请参阅GitLab documentation for tags和only。
例如,当您使用git:
推送标记时$ git tag -a 1.0.0 -m "1.0.0"
$ git push origin 1.0.0
.gitlab-ci.yml
的工作是这样的:
compile:
stage: build
only: [tags]
script:
- echo Working...
tags: [testing]
将开始使用testing
标记的转轮。
根据我的理解,您的步骤中缺少的是为您的跑步者指定标签testing
。为此,请将GitLab导入您的项目。旁边的
Wiki ,点击设置。转到 CI / CD Pipelines ,那里有您的跑步者。在它的Guid旁边,单击笔图标。在下一页上,可以修改标签。
答案 1 :(得分:3)
所有这些操作都是必要的吗?
不,如果你只有一个跑步者,或者你有很多但不关心哪个跑步者跑你的工作,那么标记跑步者/工作没有意义。
那么如果我只想在我定义一个版本时运行构建怎么办? 提交?
job:
only:
- tags
答案 2 :(得分:0)