禁止重新部署以发布存储库
Disallow re-deploy to release repository
CI 系统: Jenkins 与 Jenkins Artifactory 插件,使用管道作业
语言:Java,使用 Maven 构建
我们有一个设置,其中 "release-versions" 应该被上传到临时存储库,并且应该能够从连续的 Jenkins 构建中被覆盖(例如,由于 release/x 中的错误修复)。 x.x 分支)。
不应允许将发布版本直接上传到发布存储库,但应允许将其提升到其中。当然,无论是促销还是直接上传,都不应允许它们被覆盖。
在我们当前的设置中,我们已成功允许重新部署到暂存区,并禁止 "re-promotions" 到发布。但是 发布工件仍然可以重新部署到发布存储库中。
Jenkins 用户的有效权限:
- 发布存储库
- Delete/Overwrite: 假
- Deploy/Cache: 真
- 注释:真
- 阅读:正确
- 分期
- Delete/Overwrite: 真
- Deploy/Cache: 真
- 注释:真
- 阅读:正确
那么,有没有办法:
- 禁止部署(和重新部署)到发布存储库
- 允许每个版本一次 升级到发布存储库
- 不允许 "re-promotions" 发布存储库
- 允许部署(和重新部署)到登台存储库
最好只使用 Artifactory 权限设置。
看来你的方向是正确的。正如您提到的,您可以通过撤销 "delete / overwrite" 权限来 "block" re-deploy(覆盖)。对于特定用户,或您案例中的所有用户。要回答您的具体 use-case,您需要做的是:
- 不允许部署(和 re-deploys)到发布存储库
[A1]创建一个用于升级的用户,该用户将拥有对发布存储库的部署权限。除此用户外,其他用户不应拥有对该存储库的部署权限。它还应该对登台存储库具有读取权限。请注意,管理员用户仍将拥有对所有存储库的所有权限,但我相信这应该不会有任何问题。
- 允许每个版本升级到发布存储库
[A2] 不要给升级用户(见A1)发布仓库的删除权限。因此,在尝试覆盖的情况下,您将收到一条错误消息:
"message" : "Not enough permissions to overwrite artifact 'repoX:path/to/file' (user 'YYY' needs DELETE permission)."
- 不允许 "re-promotions" 发布存储库
[A3]见A2
- 允许部署(和 re-deploys)到登台存储库
[A4] 授予 Jenkins 用户对登台存储库的删除权限。
使用 Artifactory 权限目标应该可以解决问题。
CI 系统: Jenkins 与 Jenkins Artifactory 插件,使用管道作业
语言:Java,使用 Maven 构建
我们有一个设置,其中 "release-versions" 应该被上传到临时存储库,并且应该能够从连续的 Jenkins 构建中被覆盖(例如,由于 release/x 中的错误修复)。 x.x 分支)。
不应允许将发布版本直接上传到发布存储库,但应允许将其提升到其中。当然,无论是促销还是直接上传,都不应允许它们被覆盖。
在我们当前的设置中,我们已成功允许重新部署到暂存区,并禁止 "re-promotions" 到发布。但是 发布工件仍然可以重新部署到发布存储库中。
Jenkins 用户的有效权限:
- 发布存储库
- Delete/Overwrite: 假
- Deploy/Cache: 真
- 注释:真
- 阅读:正确
- 分期
- Delete/Overwrite: 真
- Deploy/Cache: 真
- 注释:真
- 阅读:正确
那么,有没有办法:
- 禁止部署(和重新部署)到发布存储库
- 允许每个版本一次 升级到发布存储库
- 不允许 "re-promotions" 发布存储库
- 允许部署(和重新部署)到登台存储库
最好只使用 Artifactory 权限设置。
看来你的方向是正确的。正如您提到的,您可以通过撤销 "delete / overwrite" 权限来 "block" re-deploy(覆盖)。对于特定用户,或您案例中的所有用户。要回答您的具体 use-case,您需要做的是:
- 不允许部署(和 re-deploys)到发布存储库
[A1]创建一个用于升级的用户,该用户将拥有对发布存储库的部署权限。除此用户外,其他用户不应拥有对该存储库的部署权限。它还应该对登台存储库具有读取权限。请注意,管理员用户仍将拥有对所有存储库的所有权限,但我相信这应该不会有任何问题。
- 允许每个版本升级到发布存储库
[A2] 不要给升级用户(见A1)发布仓库的删除权限。因此,在尝试覆盖的情况下,您将收到一条错误消息:
"message" : "Not enough permissions to overwrite artifact 'repoX:path/to/file' (user 'YYY' needs DELETE permission)."
- 不允许 "re-promotions" 发布存储库
[A3]见A2
- 允许部署(和 re-deploys)到登台存储库
[A4] 授予 Jenkins 用户对登台存储库的删除权限。
使用 Artifactory 权限目标应该可以解决问题。