如何在切割新版本时触发 GitLab CI/CD Pipeline?

ily*_*kam 10 gitlab gitlab-ci-runner gitlab-ce

我正在将我的项目从 GitHub.com 迁移到自托管的 GitLab CE 实例。我之前设置了一个 GitHub Actions 管道,以便在从标签中删除新版本时发布应用程序。也就是说,当我github.com/<organization>/<project>/tags编辑标签来发布版本时,以下*-workflow.yml脚本片段将触发我想要的操作:

on:
  release:
    types: [created]
Run Code Online (Sandbox Code Playgroud)

GitLab CI/CD ( ) 上的等效项是什么.gitlab-ci.yml?我搜索了所有GitLab 文档和辅助网站(例如 gitlab.reddit.com 和 Stack Overflow),但找不到任何方法来做到这一点。需要明确的是,在 GitLab 中将标签转换为真实版本的步骤如下:

  1. <GitLab CE>/<group>/<project>/-/releases/new
  2. “从”列表中的任何标签创建
  3. 填写详细信息
  4. 单击“创建版本”按钮

我希望 GitLabscript在上述步骤 4 后立即执行。

Rez*_*our 10

我不确定 Gitlab 是否有类似的功能,或者至少我在文档中找不到任何内容。

解决方法可以是在创建标签后在 CI 管道中自动创建版本。因此,每当从特定分支创建标签时,CI 管道都会创建一个版本。Release您还可以使用该值来控制创建$CI_COMMIT_TAG

release:
  stage: release
  script:
    - echo "Create release when a tag is created"
  rules:
    - if: '$CI_COMMIT_TAG' # Any tag is created
    - if: '$CI_COMMIT_TAG =~ /^v\d+\.\d+\.\d+\-release/' # A specific tag with 'vX.Y.Z-release' pattern is created
  release:
    name: 'My awesome release'
    tag_name: '$CI_COMMIT_TAG'
Run Code Online (Sandbox Code Playgroud)

有关Release使用 CI 管道创建新管道的更多信息,您可以从文档中阅读此页面:

从 GitLab CI 创建版本