随着 2019 年 1 月 Gitlab 11.7 的发布,我们获得了新的关键功能为您的项目发布版本 https://about.gitlab.com/2019/01/22/gitlab-11-7-released/#publish-releases-for-your-projects。我想要的正是该页面上的屏幕截图显示的内容,并且我希望能够使用下载编译的二进制文件发布API https://docs.gitlab.com/ee/api/releases/.
我可以手动完成。当然,可以找到手动方法的说明这里关于堆栈溢出 https://stackoverflow.com/q/29013457/1129682。我需要帮助解决的问题是将其作为 CI/CD 管道的一部分进行处理,而人们可以轻松找到的答案并未涵盖这一点。
发行说明包含文档链接 https://docs.gitlab.com/ee/user/project/releases/index.html,其中指出:
我们建议将此作为 CI/CD 发布管道中的最后步骤之一。
由此我推测这是可能的。然而,我能想到的唯一方法是像我手动创建版本时一样使用 GitLab API。据介绍,当想要访问 GitLab API 时,基本上可以选择三种身份验证选项精美的手册 https://docs.gitlab.com/ee/api/#authentication:OAUTH2 令牌、个人访问令牌和会话 cookie。因此,我需要一种方法来在我的 CI/CD 管道中使用其中任何一个,并具有足够的权限。这个问题的解决方案正在进行中,有很多贡献,但近年来几乎没有任何实质性进展。
那么,如何创建发布作为 CI/CD 发布管道的最后步骤之一呢?
由于显而易见的原因,将我的个人访问密钥与 API 访问存储在 CI/CD 变量甚至存储库中的文件中并不是一个选项。
他们发表了一篇博客文章解释如何做到这一点:
https://about.gitlab.com/blog/2020/05/07/how-gitlab-automates-releases/ https://about.gitlab.com/blog/2020/05/07/how-gitlab-automates-releases/
他们创建了一个工具(gitlab-releaser)来帮助完成这项任务。基本上,您创建一个新步骤,在其中使用提供此工具的 docker 映像,然后使用正确的参数调用该工具。
release_upload:
image: registry.gitlab.com/gitlab-org/release-cli:v0.1.0
script:
- gitlab-releaser create --name="My Release" --description="My Release description"
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)