随着 2019 年 1 月 Gitlab 11.7 的发布,我们获得了新的关键特性 Publish releases for your projects .我想要准确显示该页面上的屏幕截图,并且我希望能够使用 releases API 下载已编译的二进制文件.
我可以手动完成。当然,手动方法的说明可以找到here on stack overflow .我需要帮助的问题是将其作为 CI/CD 管道的一部分进行处理,而人们可以轻松找到的答案并未涵盖该问题。
发行说明包含 a link to the documentation ,其中指出:
we recommend doing this as one of the last steps in your CI/CD release pipeline.
由此我认为这是可能的。然而,我能想象的唯一方法是像我一样使用 GitLab API,当我手动创建版本时。根据 the fine manual,当一个人想要访问 GitLab API 时,基本上有三种身份验证选项。 :OAUTH2 token 、个人访问 token 和 session cookie。因此,我需要一种方法来在我的 CI/CD 管道中使用其中任何一个,并具有足够的特权。这个问题的解决方案是一个持续的讨论,有很多贡献,但近年来几乎没有实质性进展。
那么,作为 CI/CD 发布管道的最后一步之一,如何创建发布?
出于显而易见的原因,将带有 API 访问权限的个人访问 key 存储在 CI/CD 变量甚至存储库中的文件中都不是一种选择。
最佳答案
他们发表了一篇博客文章,解释了如何做到这一点:
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"
关于api - 从 GitLab 运行程序/管道中创建版本,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/56066649/