了解Gitlab CI标签

时间:2017-04-24 19:10:14

标签: tagging gitlab yaml

我看过文档,有些文章,你可能会叫我傻,但这是我第一次使用这样的概念。

  • 我已经注册了带有“测试”标签的跑步者
  • 在gitlab中创建了标签“testing”
  • 使用特定项目
  • 绑定此跑步者
  • 我还添加了相同的标签,例如在我当地的回购中“测试”。

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

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

... IDK

   git commit --tags "v. 2.0" -m "this is version 2.0" (probably not right)

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

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

3 个答案:

答案 0 :(得分:31)

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

当您编写.gitlab-ci.yml时,您可以使用标记testing指定一些作业。如果有关联此标签的跑步者可用,则会获得该作业。

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

当您使用标签(在Git中)在GitLab CI中启动管道时,这两个概念可能会混淆。在.gitlab-ci.yml,您可以使用only指定tags部分。

请参阅GitLab documentation for tagsonly

例如,当您使用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)

Gitlab-tag:用于为您的工作识别特定的跑步者。 ref Git-tag:正在对提交进行版本控制。 ref

推送一个新的仓库

  • 通常会通过 pycharm 之类的 git 客户端完成(当前示例)
  • 创建/更新代码
  • 提交
  • 为提交设置一个 git-tag
  • enter image description here
  • 与标签一起推送到远程
  • enter image description here
  • 检查客户端应用程序中的日志,例如在 pycharm 中,如下所示:
  • enter image description here
  • 现在在 gitlab->Repo->tags 中检查相同的内容
  • enter image description here
  • 在 gitlab 作业中,可以使用 export 进行检查,作业结果如下:
  • enter image description here