我有Copy Artifact插件已安装并尝试使用以下 Jenkinsfile 通过 jenkins 管道构建和部署
参数 DEPLOY_BUILD_NUMBER
默认为当前版本号。如果 DEPLOY_BUILD_NUMBER
是当前内部版本号,我想以这种方式构建和部署管道,或者只部署为 DEPLOY_BUILD_NUMBER
pipeline {
agent { label 'windows' }
parameters {
string(
name: 'DEPLOY_BUILD_NUMBER',
defaultValue: '${BUILD_NUMBER}',
description: 'Fresh Build and Deploy OR Deploy Previous Build Number'
)
}
stages {
stage ('Build') {
steps {
echo "Building"
}
post {
success {
archiveArtifacts artifacts: 'build.tar.gz', fingerprint: true
}
}
}
stage ('Deploy') {
steps {
echo "Deploying...."
script {
step ([$class: 'CopyArtifact',
projectName: '${JOB_NAME}',
filter: "*.tar.gz"]);
}
}
}
}
post {
always {
cleanWs()
}
}
}
当我运行这个管道时,我得到以下错误
java.lang.UnsupportedOperationException: no known implementation of interface jenkins.tasks.SimpleBuildStep is named CopyArtifact
也试过
stage ('Deploy') {
steps {
echo "Deploying...."
copyArtifacts filter: '*.tar.gz', fingerprintArtifacts: true, projectName: '${JOB_NAME}'
}
}
失败并出现以下错误
java.lang.NoSuchMethodError: No such DSL method 'copyArtifacts' found among steps
和
stage ('Deploy') {
steps {
echo "Deploying...."
script {
copyArtifacts filter: '*.tar.gz', fingerprintArtifacts: true, projectName: '${JOB_NAME}'
}
}
}
给了我
java.lang.NoSuchMethodError: No such DSL method 'copyArtifacts' found among steps
copyArtifacts 的正确语法是什么?我在这里缺少什么?
最佳答案
我会检查你安装的Copy Artifacts插件的版本(你可以在/pluginManager/installed中看到),支持管道的最低版本是1.39
关于jenkinsfile copyArtifacts 失败,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/54836236/