2016-07-19 13 views
23

Jenkins Pipeline Git SCMの資格情報をチェックアウトしますか?私は<a href="https://jenkins.io/doc/pipeline/" rel="noreferrer">this tutorial</a>以下ました

node { 
    git url: 'https://github.com/joe_user/simple-maven-project-with-tests.git' 
    ... 
} 

それは資格証明書を追加する方法を教えてくれないが。 Jenkinsは、ユーザのユーザを&と定義して特定の「資格証明」セクションを持っていますが、ジョブで使用するIDを取得しますが、パイプラインの指示にどのように使用しますか?

私が試した:

git([url: '[email protected]:company/repo.git', branch: 'master', credentialsId: '12345-1234-4696-af25-123455']) 

運を:

stderr: Host key verification failed. 
fatal: Could not read from remote repository. 

Please make sure you have the correct access rights 
and the repository exists. 

は、パイプラインでcredsを設定、または私はジェンキンのLinuxユーザのの.sshにSSH-キーを配置する必要があります方法はあります/ authorized_keysファイル?

パイプラインジョブとリポジトリ用のリポジトリを用意し、Docker Jenkinsを起動し、Jenkins Consoleで何も設定することなく、これらのジョブとキーを動的に追加したいと考えています。

答えて

48

あなたはパイプラインで次のように使用することができます。

git branch: 'master', 
    credentialsId: '12345-1234-4696-af25-123455', 
    url: 'ssh://[email protected]:company/repo.git' 

あなたはSSHのURLを使用している場合は、資格情報がユーザ名+秘密鍵でなければなりません。 sshの代わりにhttpsクローンURLを使用している場合、資格情報はusername + passwordでなければなりません。

+0

それを修正しました。ありがとうございます。私は、SSH-urlとHTTPS-urlが動作するためには異なる資格情報を必要としていることに気づいていませんでした。 – Render

+1

助けてくれました。しかし、 'credentialsId'は私がそれを理解するのに苦労したので、[' /var/lib/jenkins/credentials.xml'](https://stackoverflow.com/a/35603191/432903)のidから来ますでる。 – prayagupd

+4

@prayagupdの場合、資格情報ページ(http:// yourjenkinsinstall/credentials')から資格情報IDを取得できるはずです。設定ファイルをトラブルする必要はありません。 –

5

あなたはSSH認証情報を使用したい場合は、

git(
     url: '[email protected]<repo_name>.git', 
     credentialsId: 'xpc', 
     branch: '${branch}' 
    ) 

ユーザー名とパスワードの資格情報を使用したい場合、あなたは@Serbanが述べたように、HTTPクローンを使用する必要があります。

git(
     url: 'https://github.com/<repo_name>.git', 
     credentialsId: 'xpc', 
     branch: '${branch}' 
    ) 
関連する問題