首页 > 解决方案 > 正确的 Jenkins 作业 copyArtifact groovy 中的权限语法

问题描述

我搜索并发现了许多关于以编程方式向 jenkins 项目添加 copyArtifact 权限的主题,但我无法使用我的 groovy 管道生成器代码。

这是我生成多管道作业的块代码,copyArtifact同时尝试设置权限。

 24       multibranchPipelineJob("my_project") {
 25         branchSources {
 26           branchSource {
 27             source {
 28               git {
 29                 remote("my_repo")
 30                 credentialsId(${credential_id})
 31                 traits {
 32                   gitBranchDiscovery()
 33                   cleanBeforeCheckoutTrait {
 34                     extension {
 35                       deleteUntrackedNestedRepositories(false)
 36                     }
 37                   }
 38                 }
 39               }
 40             }
 41             strategy {
 42               defaultBranchPropertyStrategy {
 43                 props {
 44                 }
 45               }
 46             }
 47           }
 48         }
 49         properties {
 50           copyArtifactPermissionProperty {
 51             projectNameList('*')
 52           }
 53         }
 54         triggers {
 55           periodic(5)
 56         }
 57         orphanedItemStrategy {
 58           discardOldItems {
 59             // numToKeep(20)
 60           }
 61         }
 62         if ("jenkinsfile") {
 63           factory {
 64             workflowBranchProjectFactory {
 65               scriptPath("jenkinsfile")
 66             }
 67           }
 68         }
 69       }

詹金斯不断提出以下错误:

错误:(pipeline_gen.groovy,第 50 行)没有方法签名:javaposse.jobdsl.dsl.helpers.properties.FolderPropertiesContext.copyArtifactPermissionProperty() 适用于参数类型:(structure$_run_closure1$_closure5$_closure7$_closure8$_closure10$_closure23 ) 值:[结构$_run_closure1$_closure5$_closure7$_closure8$_closure10$_closure23@27252a3] > > 完成:失败

消息说在线签名50不好。

我尝试了以下语法:

这==>

 49         properties {
 50           copyArtifactPermissionProperty {
 51             projectNames('*')
 52           }
 53         }

这==>

 49        options {
 50             copyArtifactPermission('*')
 51         }

这==>

 49         properties {
 50           copyArtifactPermission('*')
 51         }

这==>

 49         properties ([
 50           copyArtifactPermission('*'),
 51         ])

但那里没有工作。

请问什么是正确的常规语法来实现这一点?

标签: jenkinsgroovyjenkins-pipelinejenkins-groovyjenkins-job-dsl

解决方案


推荐阅读