概要
GitHubのチェックアウトしてなんやかんやしたい
とりあえずチェックアウトだけ試す
Jenkins側の設定をメインに記載するので、GitHubのSSH認証周りは済んでるものとします
Jenkinsバージョン:2.270
Git plugin:4.5.0(Jenkinsインストール時に推奨プラグインを選択してればGit関連は基本入ってるはず)
※Jenkinsとプラグインのバージョンが異なると動作しない可能性があります
1. 認証情報の追加
Jenkinsのログアウトボタンの横に現在のユーザー名が書いてあると思うのでそこの▼ボタンから
認証情報 > User > グローバルドメイン > 認証情報の追加
種類を「SSHユーザー名と秘密鍵」にして
IDは空白
説明は任意(空白でも可)
ユーザー名は適当になにか入れる
秘密鍵は「直接入力」を選択して鍵の「Add」ボタンを押して入力欄にGitHubの認証用に作成したid_rsa(id_rsa.pubじゃない方)の中身をコピペして貼り付けます
パスフレーズは空白でいいです
これで保存するとグローバルドメインのリストに追加されます
IDが割り振られているのでこれを後々使用します
2. スクリプト作成
Pipelineで作成します
適当にジョブ作ってPipelineScriptに下記を記述
node
{
stage ("git")
{
checkout([$class: "GitSCM", branches: [[name: "master"]], doGenerateSubmoduleConfigurations: false, extensions: [[$class: "CheckoutOption", timeout: 30]], submoduleCfg: [], userRemoteConfigs: [[credentialsId: "XXXXX", url: "git@github.com:XXXXX/XXXXX.git"]]])
}
}
記載するのはシンプルです
引数を1つずつ解説していくと
$class
使用するプラグイン名「"GitSCM"」固定
branches
プルするブランチ名を記載
今回は固定ですがこれはパラメータに出した方がビルド時に変更できるので楽
doGenerateSubmoduleConfigurations
今回はサブモジュールは含まないので「false」
extensions
色々な拡張設定ができるんですがとりあえずチェックアウト時のタイムアウトを設定しておく
[[$class: "CheckoutOption", timeout: 30]]
submoduleCfg
今回はサブモジュールは含まないので空で
userRemoteConfigs
ここで認証と落としてくるリポジトリのurlを指定します
credentialsId: 1で登録したIDを記載
url: リポジトリのurl
3. 実行
これでビルド実行してエラーにならなければ完了