मुझे यकीन नहीं है कि यह जेनकींस का डिफ़ॉल्ट व्यवहार है।

मेरे पास तीन समानांतर चरण हैं जिनमें से प्रत्येक मानता है कि पिछले चरण में उत्पादित फाइलें निर्देशिका में मौजूद हैं।

मैं यार्न इंस्टॉल को चरण 1 में और यार्न बिल्ड को चरण 2 में और चरण 3 मेरे पास <कोड>यार्न पैकेज है।

प्रत्येक चरण स्रोत की जांच करने का प्रयास करता है और शिकायत करता है, उदाहरण के लिए, चरण 2 शिकायत करता है कि node_modules मौजूद नहीं है, जब मैंने निरीक्षण किया तो मैंने पाया कि चरण 1 कार्यक्षेत्र रीसेट हो गया था।

मंच पूरा होने के बाद कार्यक्षेत्र में निर्देशिकाओं/फ़ाइलों को बनाए रखने का कोई तरीका है?

कोई भी मदद बहुत ही सराहनीय होगी।

1 संपादित करें


pipeline {
    agent none

    options {
        skipDefaultCheckout true
    }

    environment {
        BRANCH_NAME = 'mater'
    }

    stages {

        stage ('Checkout source') {
            agent any
            steps {
                checkout([
                    $class: 'GitSCM',
                    branches: [[name: "${env.BRANCH_NAME}"]],
                    doGenerateSubmoduleConfigurations: false,
                    extensions: [],
                    submoduleCfg: [],
                    userRemoteConfigs: [[
                        credentialsId: '5db9bedc-fa88-4f64-9e6a-3e9a9d5c999f',
                        url: 'git@gitserver.io:acme/acme-repo.git'
                    ]]
                ])
            }
        }

        stage ('Test') {
            parallel {
                stage ('[Test] Mac') {
                    agent {
                        node {
                            label 'iMac'
                            customWorkspace "/Users/acme/workspace/acme-repo/nightly/${env.BRANCH_NAME}"
                        }
                    }
                    steps {
                        sh 'npm install yarn -g'
                        sh 'yarn install --network-timeout 1000000'
                        sh 'yarn build'
                        sh 'yarn test -u'
                    }
                }

                stage ('[Test] Linux') {
                    agent {
                        node {
                            label 'master'
                            customWorkspace "/var/lib/jenkins/acme/acme-repo/nightly/${env.BRANCH_NAME}"
                        }
                    }
                    steps {
                        sh 'sudo npm install yarn -g'
                        sh 'yarn install --network-timeout 1000000'
                        sh 'yarn build'
                        sh 'yarn test -u'                        
                    }
                }

                stage ('[Test] Windows') {
                    agent {
                        node {
                            label 'win'
                            customWorkspace "E:\\jenkins_agent\\acme\\nightly\\${env.BRANCH_NAME}"
                        }
                    }
                    steps {
                        bat 'npm install yarn -g'
                        bat 'yarn install --network-timeout 1000000'
                        bat 'yarn build'
                        bat 'yarn test -u'                        
                    }
                }                                    
            }
        }


        stage ('Package') {
            parallel {
                stage ('Mac') {
                    agent {
                        node {
                            label 'iMac'
                            customWorkspace "/Users/acme/workspace/acme-repo/nightly/${env.BRANCH_NAME}"
                        }
                    }
                    steps {
                        sh 'yarn package-mac'
                    }
                }

                stage ('Linux') {
                    agent {
                        node {
                            label 'master'
                            customWorkspace "/var/lib/jenkins/acme/acme-repo/nightly/${env.BRANCH_NAME}"
                        }
                    }
                    steps {
                        sh './node_modules/.bin/yarn package-linux'
                    }
                }

                stage ('Windows') {
                    agent {
                        node {
                            label 'win'
                            customWorkspace "E:\\jenkins_agent\\acme\\nightly\\${env.BRANCH_NAME}"
                        }
                    }
                    steps {
                        bat 'yarn package-win'
                    }
                }                                    
            }
        }

        stage ('Publish') {
            parallel {
                stage ('[Publish] Mac') {
                    agent {
                        node {
                            label 'iMac'
                            customWorkspace "/Users/acme/workspace/acme-repo/nightly/${env.BRANCH_NAME}"
                        }
                    }
                    steps {
                        sh 'yarn publish-mac'
                    }
                }

                stage ('[Publish] Linux') {
                    agent {
                        node {
                            label 'master'
                            customWorkspace "/var/lib/jenkins/acme/acme-repo/nightly/${env.BRANCH_NAME}"
                        }
                    }
                    steps {
                        sh './node_modules/.bin/yarn publish-linux'
                    }
                }

                stage ('[Publish] Windows') {
                    agent {
                        node {
                            label 'win'
                            customWorkspace "E:\\jenkins_agent\\acme\\nightly\\${env.BRANCH_NAME}"
                        }
                    }
                    steps {
                        bat 'yarn publish-win'
                    }
                }                                    
            }
        }        

        stage ('Tag & Push') {
            agent {
                node {
                    label 'master'
                    customWorkspace "/var/lib/jenkins/acme/acme-repo/nightly/${env.BRANCH_NAME}"
                }
            }
            steps {
                sh "yarn version --patch"
                sh 'git push git@gitserver.io:acme/acme-repo.git HEAD:$BRANCH_NAME'
            }
        }
    }
}

बस अधिक विवरण देने के लिए - वहाँ हैं

  1. चेकआउट स्रोत
  2. परीक्षण (समानांतर)
  3. पैकेज (समानांतर)
  4. प्रकाशित (समानांतर)

इन चरणों में से प्रत्येक को विभिन्न वातावरण के लिए परिभाषित किया गया है। समस्या तब है जब package चरण चल रहा है, जाहिर है, कार्यक्षेत्र साफ हो गया है इसलिए पैकेज चलाने के लिए कुछ भी नहीं है

0
asyncwait 26 अगस्त 2020, 10:55

1 उत्तर

सबसे बढ़िया उत्तर

जैसा कि यह पता चला है, मुझे उपयोग करने की आवश्यकता है -

    options {
        // This is key setting that enables one checkout across different stages
        skipDefaultCheckout true
    } 

डिफ़ॉल्ट चेकआउट छोड़ने के लिए।

0
asyncwait 29 सितंबर 2020, 09:55