了解 Gitlab CI 标签
Understanding Gitlab CI tags
我已经阅读了文档和一些文章,您可能会说我愚蠢,但这是我第一次使用这样的概念。
- 我已经用标签 "testing"
注册了 运行ner
- 在 gitlab 中创建了标签 "testing"
- 将此 运行ner 与特定项目绑定
- 我也添加了相同的标签,例如"testing"在我的本地仓库中。
但是 运行我的工作究竟是如何依赖于这些标签的?所有这些操作都是必要的吗?如果我将新代码推送到 repo,*.yml 文件会根据我的测试执行。
那么如果我想 运行 仅在我在提交中定义一个版本时构建怎么办?
IDK...
git commit --tags "v. 2.0" -m "this is version 2.0" (probably not right)
但当然应该是通用的,所以我不必总是告诉,用哪个标签来触发运行ner,但是比如让他识别数值。
如您所见,我很困惑...如果您能详细说明标签的具体工作原理,那么我将能够理解这个概念,我将不胜感激。
Git实验室CI的标签和Git的标签是两个不同的概念。
当你写你的.gitlab-ci.yml
时,你可以用标签testing
指定一些工作。如果有关联此标签的跑步者可用,它将接管工作。
在 Git 中,在您的存储库中,标签用于标记特定的提交。它通常用于标记一个版本。
当您使用标签(在 Git 中)在 GitLab CI 中启动管道时,这两个概念可能会混淆。在您的 .gitlab-ci.yml
中,您可以将 only
部分指定为 tags
。
参考GitLab documentation for tags and 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 旁边,单击笔图标。在下一页可以修改标签。
Are all these operations necessary?
不,如果您只有一个跑步者,或者如果您有很多但不在乎哪个跑步者负责您的工作,那么标记 runners/jobs.
就没有意义了
So what if I want to run build only when I define a version in a
commit?
job:
only:
- tags
Gitlab-tag:用于为您的工作识别特定的跑步者。 ref
Git-tag:正在对提交进行版本控制。 ref
推送一个新的 repo
- 通常会通过 git 客户端完成,例如 pycharm(当前示例)
- create/update代码
- 提交
- 为提交设置一个 git 标签
- 与标签一起推送到远程
- 检查客户端应用程序中的日志,例如在 pycharm 中,如下所示:
- 现在在 gitlab->Repo->tags
中检查相同内容
- 在 gitlab 作业中可以使用 export 查看相同的作业结果如下:
我已经阅读了文档和一些文章,您可能会说我愚蠢,但这是我第一次使用这样的概念。
- 我已经用标签 "testing" 注册了 运行ner
- 在 gitlab 中创建了标签 "testing"
- 将此 运行ner 与特定项目绑定
- 我也添加了相同的标签,例如"testing"在我的本地仓库中。
但是 运行我的工作究竟是如何依赖于这些标签的?所有这些操作都是必要的吗?如果我将新代码推送到 repo,*.yml 文件会根据我的测试执行。
那么如果我想 运行 仅在我在提交中定义一个版本时构建怎么办?
IDK...
git commit --tags "v. 2.0" -m "this is version 2.0" (probably not right)
但当然应该是通用的,所以我不必总是告诉,用哪个标签来触发运行ner,但是比如让他识别数值。
如您所见,我很困惑...如果您能详细说明标签的具体工作原理,那么我将能够理解这个概念,我将不胜感激。
Git实验室CI的标签和Git的标签是两个不同的概念。
当你写你的.gitlab-ci.yml
时,你可以用标签testing
指定一些工作。如果有关联此标签的跑步者可用,它将接管工作。
在 Git 中,在您的存储库中,标签用于标记特定的提交。它通常用于标记一个版本。
当您使用标签(在 Git 中)在 GitLab CI 中启动管道时,这两个概念可能会混淆。在您的 .gitlab-ci.yml
中,您可以将 only
部分指定为 tags
。
参考GitLab documentation for tags and 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 旁边,单击笔图标。在下一页可以修改标签。
Are all these operations necessary?
不,如果您只有一个跑步者,或者如果您有很多但不在乎哪个跑步者负责您的工作,那么标记 runners/jobs.
就没有意义了So what if I want to run build only when I define a version in a commit?
job:
only:
- tags
Gitlab-tag:用于为您的工作识别特定的跑步者。 ref Git-tag:正在对提交进行版本控制。 ref
推送一个新的 repo
- 通常会通过 git 客户端完成,例如 pycharm(当前示例)
- create/update代码
- 提交
- 为提交设置一个 git 标签
- 与标签一起推送到远程
- 检查客户端应用程序中的日志,例如在 pycharm 中,如下所示:
- 现在在 gitlab->Repo->tags 中检查相同内容
- 在 gitlab 作业中可以使用 export 查看相同的作业结果如下: