我们如何配置gitlab以仅保留最后10个CI作业/构建并继续删除其余的?
例如,在Jenkins中,我们可以将作业配置为仅保留最后的X版本。
我认为Gitlab不支持此功能。但您可以使用Gitlab API和webhooks自行创建此功能。
当您推送到repo(并且管道已启动)时,它将触发webhook,它可以通过API读取您的CI历史记录=>您可以删除任何您想要的内容。
这是pipeline events的文档
这是job API的文档
仅供参考我使用类似的解决方案。我为每个分支部署了服务器(每个brach都有MR)。当MR关闭时,删除已部署的服务器。它非常可靠。
从Gitlab Release 11.6开始,删除管道现在是一个选项,仅适用于维护者,通过API。
你需要:
id
pipeline_id
。使用项目id: 1
和pipeline_id: 4
的文档中的curl的示例:
curl --header "PRIVATE-TOKEN: <your_access_token>" --request "DELETE" "https://gitlab.example.com/api/v4/projects/1/pipelines/46"
文档是here