jenkinsfile copyArtifacts失败

3ks5zfa0  于 2023-08-03  发布在  Jenkins
关注(0)|答案(3)|浏览(197)

我已经安装了Copy Artifact插件,并试图通过Jenkins管道使用以下Jenkinsfile进行构建和部署
参数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的正确语法是什么?我错过了什么

pvcm50d1

pvcm50d11#

我会检查您安装的复制工件插件的版本(您可以在/pluginManager/installed中看到),支持管道的最低版本是1.39

nqwrtyyt

nqwrtyyt2#

你需要用“script {..}”

post {
          success {
            script {
              archiveArtifacts artifacts: 'build.tar.gz', fingerprint: true
            }
          }
        }

字符串

7z5jn7bk

7z5jn7bk3#

CopyArtifact定义了一个步骤copyArtifacts,您可以直接使用它。
检查步骤参考here

相关问题