2016-11-15 5 views
7

में ssh क्रेडेंशियल्स का उपयोग मैं जेनकींस में एक Github Organisation आइटम है। मेरी भंडार की जड़ पर, मेरे Jenkinsfile इस तरह दिखता है:कैसे GitHub संगठन जेनकींस कार्यप्रवाह में ssh दूरस्थ चेकआउट और Jenkinsfile

node { 

    def jenkinsCredsId = 'xxxxxxxx-yyyy-zzzz-aaaa-bbbbbbbbbbbb' 

    stage 'Checkout' 
    checkout scm 
    // I also tried the following: 
    // checkout scm: [$class: 'GitSCM', source: 'ssh://[email protected]:MY_ORGANISATION/jenkins-testing-temp.git', clean: true, credentialsId: jenkinsCredsId] 

    stage 'Build' 
    // generate some artefact (dist.zip) 

    stage 'Release' 

    sshagent([jenkinsCredsId]) { 
    sh ''' 
    git remote -v // show remotes 
    ssh-add -l // show currently loaded ssh keys fingerprints 

    git fetch --all --tags // IT FAILS HERE 

    CURRENT_BUILD_TAG="some_build/${BUILD_NUMBER}" 
    git tag ${CURRENT_BUILD_TAG} 

    git push --tags 

    github-release release \ 
    --security-token ${GITHUB_RELEASE_TOKEN} \ 
    --user MY_ORGANIZATION \ 
    --repo MY_REPO \ 
    --tag ${CURRENT_BUILD_TAG} \ 
    --name ${CURRENT_BUILD_TAG} 

    github-release upload \ 
    --security-token ${GITHUB_RELEASE_TOKEN} \ 
    --user MY_ORGANIZATION \ 
    --repo MY_REPO \ 
    --tag ${CURRENT_BUILD_TAG} \ 
    --name ${CURRENT_BUILD_TAG} \ 
    --file dist.zip 
    ''' 
    } 

यहाँ में परीक्षण के भंडार के उपयोग के लिए कुछ लाइनें और यह वर्तमान में निम्न त्रुटि के साथ git fetch हिस्सा पर विफल रहने के है:

fatal: could not read Username for ' https://github.com ': No such device or address

origin https://github.com/MY_ORGANIZATION/MY_REPO की तरह ऊपर Jenkinsfile आउटपुट कुछ से git remote -v आदेश।

मेरे Github Organization Git विन्यास इस तरह दिखता है: repository-sources-github-organization-jenkins-config

मैं कुछ संबंधित प्रश्नों पाया:

उत्तर

8

ऐसा लगता है कि Github Organization आइटम केवल https क्रेडेंशियल्स का उपयोग करता है एफ या Scan credentials (ऊपर चित्र की तरह)।

समाधान Advanced बटन हिट करने के लिए था, और वास्तव में डिफ़ॉल्ट - Same as scan credentials - के बजाय Checkout credentials लटकती में एक ssh क्रेडेंशियल का चयन करें।

advanced-view-checkout-credentials

ध्यान दें कि सितारों के साथ साख उपयोगकर्ता/कूटशब्द प्रविष्टियों रहे हैं, कि कैसे मैं इस समस्या पाया है।

इस प्रकार, checkout scm इसके बजाय एसएसएच का उपयोग करेगा और sshagent([jenkinsCredsId]) { ब्लॉक अपेक्षित काम करेगा, जिससे आप टैग बना सकते हैं, अपने अधिकारों के अनुसार धक्का दे सकते हैं। :)

संबंधित मुद्दे