剪切新版本时如何触发 GitLab CI/CD 管道?

时间:2021-05-26 22:29:17

标签: gitlab gitlab-ci-runner gitlab-ce

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

on:
  release:
    types: [created]

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

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

我希望 GitLab 在上面的第 4 步后立即执行我的 script

1 个答案:

答案 0 :(得分:1)

我不确定 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'

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

Create release from GitLab CI