У меня есть Копировать артефакт Плагин установлен и пытается создать и развернуть его через конвейер 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?чего мне здесь не хватает?