我想找到一個Jenkins管道(工作流)中使用Jenkins Copy Artifacts插件的例子。如何從管道內使用Jenkins Copy Artifacts插件(jenkinsfile)?
任何人都可以指出一個正在使用它的示例Groovy代碼?
我想找到一個Jenkins管道(工作流)中使用Jenkins Copy Artifacts插件的例子。如何從管道內使用Jenkins Copy Artifacts插件(jenkinsfile)?
任何人都可以指出一個正在使用它的示例Groovy代碼?
如果版本是不是在同一個管道運行,您可以使用直接CopyArtifact
插件,這裏是例子:https://www.cloudbees.com/blog/copying-artifacts-between-builds-jenkins-workflow和示例代碼:
node {
// setup env..
// copy the deployment unit from another Job...
step ([$class: 'CopyArtifact',
projectName: 'webapp_build',
filter: 'target/orders.war']);
// deploy 'target/orders.war' to an app host
}
如果您使用的是你的主人的奴隸,你想對方你可以使用藏匿/ unstash之間複製文物,例如:
:stage 'build'
node{
git 'https://github.com/cloudbees/todo-api.git'
stash includes: 'pom.xml', name: 'pom'
}
stage name: 'test', concurrency: 3
node {
unstash 'pom'
sh 'cat pom.xml'
}
您可以在這個鏈接看到這個例子
https://dzone.com/refcardz/continuous-delivery-with-jenkins-workflow
name = "/" + "${env.JOB_NAME}"
def archiveName = 'relNum'
try {
step($class: 'hudson.plugins.copyartifact.CopyArtifact', projectName: name, filter: archiveName)
} catch (none) {
echo 'No artifact to copy from ' + name + ' with name relNum'
writeFile file: archiveName, text: '3'
}
def content = readFile(archiveName).trim()
echo 'value archived: ' + content
嘗試使用複製神器插件
憑藉聲明Jenkinsfile,您可以使用以下管道:
pipeline {
agent any
stages {
stage ('push artifact') {
steps {
sh 'mkdir archive'
sh 'echo test > archive/test.txt'
zip zipFile: 'test.zip', archive: false, dir: 'archive'
archiveArtifacts artifacts: 'test.zip', fingerprint: true
}
}
stage('pull artifact') {
steps {
step([ $class: 'CopyArtifact',
filter: 'test.zip',
fingerprintArtifacts: true,
projectName: '${JOB_NAME}',
selector: [$class: 'SpecificBuildSelector', buildNumber: '${BUILD_NUMBER}']
])
unzip zipFile: 'test.zip', dir: './archive_new'
sh 'cat archive_new/test.txt'
}
}
}
}
使用CopyArtifact
,我使用'$ {JOB_NAME}'作爲當前正在運行的項目的項目名稱。
CopyArtifact
使用的默認選擇器使用上次成功的項目內部版本號,從不是當前版本號(因爲它尚未成功或不成功)。用SpecificBuildSelector
您可以選擇'$ {BUILD_NUMBER}',其中包含當前正在運行的項目內部版本號。
這條管道可與平行的階段,能夠管理龐大的文件(我使用的是300MB的文件,它不工作與藏匿/ unstash)
這條管道與我詹金斯2.74完美的作品,只要你有所有需要的插件
你碰巧知道這個步驟([$ class:'CopyArtifact',語法記錄嗎?我想我記得它是由Snippet生成器生成的,現在找不到它..我特別想知道如何使用參數化構建選擇器。 – inger
我看到一個例子[here](https://wiki.jenkins.io/dis播放/ JENKINS /複製+神器+插件)。關於'SpecificBuildSelector',我通過分析[插件代碼](https://github.com/jenkinsci/copyartifact-plugin/tree/copyartifact-1.38.1/src/main/java/hudson/plugins/copyartifact)來猜測它。 –