Стюарт Роу также порекомендовал мне на канале авторизации конвейера Sig Gitter , чтобы я посмотрел на плагин копирования артефактов, но также дал мне некоторый пример синтаксиса Jenkins Pipeline для используйте .
Основываясь на совете, который он дал, я придумал этот более полный пример Pipeline.
который копирует артефакты из предыдущей сборки в текущую сборку,
была ли предыдущая сборка успешной или неудачной.
pipeline {
agent any;
stages {
stage("Zeroth stage") {
steps {
script {
if (currentBuild.previousBuild) {
try {
copyArtifacts(projectName: currentBuild.projectName,
selector: specific("${currentBuild.previousBuild.number}"))
def previousFile = readFile(file: "usefulfile.txt")
echo("The current build is ${currentBuild.number}")
echo("The previous build artifact was: ${previousFile}")
} catch(err) {
// ignore error
}
}
}
}
}
stage("First stage") {
steps {
echo("Hello")
writeFile(file: "usefulfile.txt", text: "This file ${env.BUILD_NUMBER} is useful, need to archive it.")
archiveArtifacts(artifacts: 'usefulfile.txt')
}
}
stage("Error") {
steps {
error("Failed")
}
}
}
}