CI系统: Jenkins使用Jenkins Artifactory插件,使用管道作业
语言: Java,使用Maven构建
我们有一个设置,其中“发布版本”应该被上传到临时存储库,并且应该能够从连续的Jenkins构建中覆盖(例如,因为发布/ xxx分支中的错误修复)。 /> 不应允许将发行版本直接上载到发行版存储库中,但应允许将其升级到版本库中。当然,不应该从促销或直接上传中覆盖它们。
在我们目前的设置中,我们已成功允许重新部署到暂存,并禁止“重新促销”到发布。但是发布工件仍然可以重新部署到发布存储库中。
Jenkins用户的有效权限:
那么,有没有办法:
最好只使用Artifactory权限设置。
答案 0 :(得分:5)
您似乎正走在正确的轨道上。如您所述,您可以通过撤消“删除/覆盖”权限来“阻止”重新部署(覆盖)。对于特定用户或您案例中的所有用户。要回答您的具体用例,您需要做的是:
[A1]创建用于促销的用户,该用户将具有对发布存储库的部署权限。除此用户外,没有其他用户应该具有该存储库的部署权限。它还应该具有对staging存储库的读取权限。请注意,管理员用户仍将拥有所有存储库的所有权限,但我相信这不会有任何问题。
[A2]不要让促销用户(参见A1)删除发布存储库的权限。因此,在尝试覆盖的情况下,您将收到错误消息:
“message”:“没有足够的权限覆盖工件'repoX:path / to / file'(用户'YYY'需要DELETE权限)。”
[A3]见A2
[A4]授予Jenkins用户对登台存储库的删除权限。
这应该使用Artifactory权限目标来实现。