我正在将我的项目从 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 中将标签转换为真实版本的步骤如下:
<GitLab CE>/<group>/<project>/-/releases/new
我希望 GitLab 在上面的第 4 步后立即执行我的 script
。
答案 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
的更多信息,您可以从文档中阅读此页面: