sfg*_*ups 6 jenkins jenkins-pipeline
基于这篇文章,尝试在我的环境中测试管道代码。但是它给下面的错误信息。如何修复他的管道代码?
ERROR: Unable to find project for artifact copy: test
This may be due to incorrect project name or permission settings; see help for project name in job configuration.
Finished: FAILURE
Run Code Online (Sandbox Code Playgroud)
如何在管道(jenkinsfile)中使用Jenkins Copy Artifacts插件?
pipeline {
agent any
stages {
stage ('push artifact') {
steps {
sh '[ -d archive ] || mkdir archive'
sh 'echo test > archive/test.txt'
sh 'rm -f test.zip'
zip zipFile: 'test.zip', archive: false, dir: 'archive'
archiveArtifacts artifacts: 'test.zip', fingerprint: true
}
}
stage('pull artifact') {
steps {
sh 'pwd'
sh 'ls -l'
sh 'env'
step([ $class: 'CopyArtifact',
filter: 'test.zip',
projectName: '${JOB_NAME}',
fingerprintArtifacts: true,
selector: [$class: 'SpecificBuildSelector', buildNumber: '${BUILD_NUMBER}']
])
unzip zipFile: 'test.zip', dir: './archive_new'
sh 'cat archive_new/test.txt'
}
}
}
}
Run Code Online (Sandbox Code Playgroud)
小智 18
如果启用授权(如 rbac),则必须向项目授予“复制工件”权限。在项目配置中,General -> Permission to Copy Artifact,勾选并设置可以复制Artifact的项目
而不是使用projectName: '${JOB_NAME}',对我有用的是使用projectName: env.JOB_NAME。也就是说,您完整的复制工件步骤将如下所示:
step([ $class: 'CopyArtifact',
filter: 'test.zip',
projectName: env.JOB_NAME,
fingerprintArtifacts: true,
selector: [$class: 'SpecificBuildSelector', buildNumber: env.BUILD_NUMBER]
])
Run Code Online (Sandbox Code Playgroud)
或者使用更现代的语法:
copyArtifacts(
filter: 'test.zip',
projectName: env.JOB_NAME,
fingerprintArtifacts: true,
selector: specific(env.BUILD_NUMBER)
)
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
3012 次 |
| 最近记录: |