2016-04-01 26 views
4

私はjob-dslシードジョブを作成しています。シードジョブは、github.comまたは私の会社のgithubエンタープライズサーバから生成できる必要があります。私は2つの仕事よりも1つの仕事をしたいと思っています。資格情報パラメータを使用してgit資格情報を設定する方法

それぞれのケースでは、ジェンキンスを認証したいと考えています。だから、私はスクリプトに信用をハードコード化しました。しかし、私はこれに満足していない。シードジョブにCredentialsパラメータを追加することをお勧めします。

問題は、CredsパラメータがENID変数をUSERID/PASSWORDを含むスクリプトに追加するように見えることです。 http://steve-jansen.github.io/blog/2014/12/16/parsing-jenkins-secrets-in-a-shell-script/

ただし、git jobdslには、USERID/PASSWORDではなく、クレデンシャルIDが必要なようです。

この難点を解決するにはどうすればよいですか?

scm { 
    git { 
     remote { 
      name('origin') 
       url(repo) 
       credentials(myCredential) 
     } 
     branch('master') 
    } 
} 

答えて

0

質問の前提がfalseであることが分かります。 CredentialsPlugin 1.7は、変数をcredentialIDに設定します。

+0

このコメントを拡張できますか?私は信用のプラグインを持っていて、手動の仕事XMLのその変数を見ることができますが、GUIDタイプの文字列 – ffghfgh

+0

が残念です。あなたが参照しているGUIDタイプの文字列を推測していますが、これはGithub APIキーです。これで、APIを通じてgithubで認証するだけで済みます。 – Duane

+0

そうですね、何が起こるかは、信用をジェンキンスの信任状データベースに入れたことです。データベースには、追加する各credの鍵があります。 DSLスクリプトでこのキーを使用すると、Jenkinsが代用を行います。 – Duane

1

Job DSLが資格証明を処理する方法の良い紹介は、公式wiki pageにあります。それはジェンキンスジョブにユーザーのパスワードを渡すことができます方法を説明する

二つの例:

// use the github-ci-key credentials for authentication with GitHub 
job('example-1') { 
    scm { 
     git { 
      remote { 
       github('account/repo', 'ssh') 
       credentials('github-ci-key') 
      } 
     } 
    } 
} 

// assign the jarsign-keystore credentials to the PASSWORD build variable job('example-2') { 
    wrappers { 
     credentialsBinding { 
      usernamePassword('PASSWORD', 'jarsign-keystore') 
     } 
    } 
} 
1

は、上記デュアンによって行われた答えに加えて、CredentialIDはジェンキンスに保存されている資格の固有のIDです。また、独自のIDを提供して意味のある方法で識別することもできます。

Jenkins Credentials

このIDは、あなたの仕事-DSLスクリプトで上記の画像で示し、それはあなたのために働く必要があります使用してください。

平和。