use*_*682 5 api continuous-integration pipeline gitlab
随着 2019 年 1 月 Gitlab 11.7 的发布,我们为您的项目获得了新的关键功能发布版本。我想要准确显示该页面上的屏幕截图,并且我希望能够使用发布 API下载已编译的二进制文件。
我可以手动完成。当然,手动方法的说明可以在这里找到堆栈溢出。我需要帮助的问题是将其作为 CI/CD 管道的一部分进行处理,而人们可以轻松找到的答案并未涵盖该问题。
发行说明包含指向文档的链接,其中指出:
我们建议将此作为 CI/CD 发布管道中的最后一步之一。
由此我认为这是可能的。然而,我能想象的唯一方法是像我一样使用 GitLab API,当我手动创建版本时。当一个人想要访问 GitLab API 时,基本上有三种身份验证选项,根据精细手册:OAUTH2 令牌、个人访问令牌和会话 cookie。因此,我需要一种方法来在我的 CI/CD 管道中使用其中任何一个,并具有足够的特权。这个问题的解决方案是一个持续的讨论,有很多贡献,但近年来几乎没有实质性进展。
那么,作为 CI/CD 发布管道的最后一步之一,如何创建发布?
出于显而易见的原因,将带有 API 访问权限的个人访问密钥存储在 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"
Run Code Online (Sandbox Code Playgroud)