एक कथात्मक 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}' चुन सकते हैं जिसमें वर्तमान चल रहे प्रोजेक्ट बिल्ड नंबर शामिल हैं।
इस पाइपलाइन समानांतर चरणों के साथ काम करता है और विशाल फाइलों का प्रबंधन कर सकते हैं
इस पाइपलाइन मेरी जेनकींस 2.74 के साथ पूरी तरह से काम करता है, बशर्ते आप (मैं एक 300MB फ़ाइल का उपयोग कर रहा है, यह नहीं गुप्त कोष/unstash साथ काम करता है) सभी आवश्यक प्लगइन्स
स्रोत
2017-10-04 14:21:49
क्या आपको पता है कि यह कदम कहां है ([$ वर्ग: 'CopyArtifact', वाक्यविन्यास दस्तावेज है? मुझे लगता है कि मुझे याद है कि यह स्निपेट जनरेटर द्वारा उत्पन्न किया गया था, अब इसे नहीं मिला .. मैं विशेष रूप से सोच रहा हूं कि आप पैरामीट्रिज्ड बिल्ड चयनकर्ता का उपयोग कैसे कर सकते हैं। – inger
मैंने एक उदाहरण देखा [यहां] (https://wiki.jenkins.io/dis प्ले/जेनकींस/कॉपी + विरूपण साक्ष्य + प्लगइन)। 'विशिष्ट बिल्डर चयनकर्ता' के बारे में, मैंने इसे [प्लगइन कोड] का विश्लेषण करके अनुमान लगाया है (https://github.com/jenkinsci/copyartifact-plugin/tree/copyartifact-1.38.1/src/main/java/hudson/plugins/copyartifact) –