1
2

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 5 years have passed since last update.

GitLabからJenkins Pipelineへの Source Cloneではまった話

1
Last updated at Posted at 2020-04-09

今回の環境はこちら

ソース

  • GitLab Community Edition 12.5.10

動作環境

  • Jenkins v2.204.2
  • OpenShift v3.11 : はJenkinsはここからデプロイしてます
  • Kubernetes v1.11

概要

GitLabからのcloneって ローカルだとさくっといけるじゃないですか

例: git clone htttps://userid:pass@url〜

でも、Jenkins Pipeline は 甘くなかったです。

結論的には、下記でうまくいきました。

  • git の credentialsId構文を使った
  • CredentialsIDは Jenkinsに入力時に指定するものでなく、Jenkinsが自動採番するものを使った

Try and Error

下記だとできませんでした。

  • Pipelineで、withCredentialsで認証情報をローカル変数に格納し、それをURL内にセット

一応 認証情報はJenkinsに格納して、ソース上で直書きしないようにしてます。
(仮に直書きしても疎通できないらしい。よい子はやっちゃダメよ)

ソース

withCredentials([[$class: 'UsernamePasswordMultiBinding', 
   credentialsId: '認証情報の名前(Jenkinsで自動採番されるやつ)',
   usernameVariable: 'USERNAME', passwordVariable: 'PASSWORD']]) {
   git url: "https://$USERNAME:$PASSWORD@gitのURL", branch: "master"
}

↑ 実は 「UsernamePasswordMultiBinding」が間違っているのかもしれないと思い、「UsernamePassword」でやってもだめでした↓

withCredentials([usernamePassword(
   credentialsId: '認証情報の名前(Jenkinsで自動採番されるやつ)', 
   usernameVariable: 'USERNAME', passwordVariable: 'PASSWORD')]) {
   git url: "https://$USERNAME:$PASSWORD@gitのURL", branch: "master"
}

結果 認証エラー

stderr: fatal: Authentication failed for 'https://****@gitのURL/'

Try and OK, but...

Pipelineを使わず、「フリースタイルのビルド」を選択して GitLab連携するとさくっとcloneできます。
このときは「ソースコード」の「Git」から「認証情報」を登録してやります。

しかしPipelineを使いたいんですよね〜

Finally OK

最終的にこれで、Pipelineからでもうまくいきました。
なお、credentialsIdは、あらかじめGitで登録した「ユーザー名とパスワード」でJenkinsに登録し、自動採番されるIDをPipeline内にふってやります。

git credentialsId: '認証情報の名前(Jenkinsで自動採番されるやつ)', 
  url: "https://gitのURL", branch: "master"

補記: 認証方法についてのTry & Error

「ユーザー名とパスワード」ってださくないか、と思い、Gitのリポジトリのデプロイトークンや、ssh keys で試しましたが、そちらはうまくいきませんでした。
やり方がわかっていないだけのような気もしますが。。。。

以上、困っている人の参考になれば幸いです

1
2
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
1
2

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?