2016-11-15 13 views
7

私はジーンキーの中にGithub Organisationという項目を持っています。私のリポジトリのルートでは、私のJenkinsfileは次のようになります。github編成でssh remoteをチェックアウトする方法JenkinsワークフローとJenkinsfileでssh資格を使用する

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

:それは現在、次のエラーで git fetch一部に失敗していますいくつかのここでのテストリポジトリにアクセスするためのラインと あります

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 
    ''' 
    } 

Jenkinsfilegit remote -vコマンドは、origin https://github.com/MY_ORGANIZATION/MY_REPOのような出力を出力します。それはGithub Organizationアイテムのみということが判明し

答えて

8

:私はいくつかの関連する質問を見つけた repository-sources-github-organization-jenkins-config

マイGithub Organization Gitの構成は次のようになりますhttpsクレデンシャルを使用するまたはScan credentials(上記の画像のように)。

解決策は、Advancedボタンを押して、の代わりにCheckout credentialsドロップダウンで実際にssh資格を選択することでした。

advanced-view-checkout-credentials

注星を持つ資格情報は、ユーザー/パスワードのエントリであること、それは私が問題を発見した方法です。

このように、checkout scmは代わりにsshを使用し、sshagent([jenkinsCredsId]) {ブロックは期待どおりに動作し、あなたの権利に従ってタグを作成し、フェッチしてプッシュできます。 :)

関連する問題