从GitLab运行器/管道中创建发布

时间:2019-05-09 19:52:39

标签: api continuous-integration gitlab pipeline

随着Gitlab 11.7在2019年1月的发布,我们获得了新的关键功能Publish releases for your projects。我想确切显示该页面上的屏幕快照,并希望能够使用releases API下载已编译的二进制文件。

我可以手动完成。当然,可以在here on stack overflow中找到有关手动方法的说明。我需要帮助的问题是,它是作为CI / CD管道的一部分来完成的,因此您无法轻易找到答案。

发行说明包含a link to the documentation,其中指出:

  

我们建议您将此操作作为CI / CD发行流程中的最后步骤之一。

据此,我有可能。但是,我可以想象的唯一方法是像手动创建发行版一样使用GitLab API。根据{{​​3}},当一个人想要访问GitLab API时,实际上有三个身份验证选项:OAUTH2令牌,个人访问令牌和会话cookie。因此,我将需要一种具有足够特权的方法来在我的CI / CD管道中提供这两种方法。这个问题的解决方案是一个持续不断的讨论,并做出了很多贡献,但近年来却没有实质性进展。

那么,如何创建发布作为CI / CD发布流程中的最后一步之一?

出于明显的原因,无法选择将具有API访问权限的个人访问密钥存储在CI / CD变量中,甚至将文件存储在存储库中。

1 个答案:

答案 0 :(得分:0)

他们张贴了一篇博客文章,说明如何执行此操作:

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"