了解Gitlab CI标签

Rid*_*his 19 tagging yaml gitlab

我已经阅读了文档,一些文章,你可能会称我为愚蠢,但这是我第一次使用这样的概念.

  • 我已经注册了带有"测试"标签的跑步者
  • 在gitlab中创建了标签"testing"
  • 这个跑步者,特别是项目
  • 我还在我的本地仓库中添加了相同的标签,例如"testing".

但是我的工作究竟是如何依赖这些标签的呢?所有这些操作都必要吗?如果我将新代码推送到repo,那么无论如何我都会执行*.yml文件.

那么,如果我只想在提交中定义版本时运行构建,该怎么办?

IDK ...

   git commit --tags "v. 2.0" -m "this is version 2.0" (probably not right)
Run Code Online (Sandbox Code Playgroud)

但当然它应该是通用的,所以我不必总是告诉使用哪个标签来触发转轮,但是例如让他识别数值.

正如你所看到的,我很困惑......如果你能详细说明标签是如何工作的,那么我就能理解这个概念,我将非常感激.

elb*_*aid 39

GitLab CI的标签和Git的标签是两个不同的概念.

编写时.gitlab-ci.yml,可以使用标记指定一些作业testing.如果有关联此标签的跑步者可用,它将获取该作业.

在Git中,在您的存储库中,标记用于标记特定的提交.它通常用于标记版本.

当您使用标签(在Git中)在GitLab CI中启动管道时,这两个概念可能会混淆.在你的.gitlab-ci.yml,你可以指定一节onlytags.

请参阅GitLab文档标签唯一的.

一个例子是你用git推送标签:

$ git tag -a 1.0.0 -m "1.0.0"
$ git push origin 1.0.0
Run Code Online (Sandbox Code Playgroud)

.gitlab-ci.yml像这样的工作:

compile:
    stage: build
    only: [tags]
    script:
        - echo Working...
    tags: [testing]    
Run Code Online (Sandbox Code Playgroud)

会开始使用带testing标签的跑步者.

根据我的理解,您的步骤中缺少的是testing为您的跑步者指定标签.为此,请将GitLab导入您的项目.在Wiki旁边 ,单击" 设置".转到CI/CD管道,那里有你的跑步者.在它的Guid旁边,单击笔图标.在下一页上,可以修改标签.


Ahm*_*any 5

所有这些操作都是必要的吗?

不,如果你只有一个跑步者,或者如果你有很多跑步者但不关心哪个跑步者运行你的工作,那么标记跑步者/工作是没有意义的。

那么如果我只想在提交中定义版本时才运行构建怎么办?

job:
  only:
    - tags
Run Code Online (Sandbox Code Playgroud)