背景・概要
JenkinsでのパイプラインはJenkinsfileを用いて作成することが多くなっています。
ただ、JenkinsfileはGitHub、GitLabなどのSCMにpushされ、それをベースにJenkinsのジョブが実行される(ことが多い)ため、Jenkinsfileの構文がvalidであることのチェックのためにGitHub、GitLabなどに反映する必要があり、コミットの履歴が汚れがちでした。
当記事では、Jenkinsで動かす前にJenkinsfileがvalidであることをチェック(lint)する手段として、VSCodeのプラグイン「Jenkins Pipeline Linter Connector」を紹介します。
このプラグインは、Jenkinsに用意されているPipelineスクリプトのlintをVSCodeから実行するためのものになります(プラグイン自体がlintするのではない)。
※上記プラグインを使用しない方法(コマンドライン)もあります。以下をご参照ください。
Jenkinsfile、書いてますか?
前提
- ローカル環境にVisual Studio Code(VSCode) が導入されていること
- ローカル環境にJenkinsが導入されていること
- JenkinsfileはDeclarative Pipelineであること
制限事項
- チェックできるのは構文のみ。内容が正しいかどうかはチェックされない
導入手順
- VSCodeのExtensionsビューを開く
- 「Jenkins Pipeline Linter Connector」で検索する
- 「Jenkins Pipeline Linter Connector」を選択し、「Install」ボタンを押下する
設定内容
- VSCodeのSettingsを開く
- 「jenkins」で検索する。「Jenkins Pipeline Linter Connector」の設定項目が5つ出てくる
- 各項目を以下の通り設定する
設定項目 | settings.jsonのキー | 設定内容 |
---|---|---|
Jenkins › Pipeline › Linter › Connector: Url | jenkins.pipeline.linter.connector.url | Jenkins上のvalidaterのURL。以下を設定。http://localhost:[Jenkinsのポート]/pipeline-model-converter/validate
|
Jenkins › Pipeline › Linter › Connector: Crumb Url | jenkins.pipeline.linter.connector.crumbUrl | Jenkins側でCSRF protectionを有効に設定している場合に設定が必要。以下を設定。http://localhost:[Jenkinsのポート]/crumbIssuer/api/xml?xpath=concat(//crumbRequestField,%22:%22,//crumb)
|
Jenkins › Pipeline › Linter › Connector: User | jenkins.pipeline.linter.connector.user | Jenkinsにログインするためのユーザ名 |
Jenkins › Pipeline › Linter › Connector: Pass | jenkins.pipeline.linter.connector.pass | Jenkinsにログインするためのパスワード |
Jenkins › Pipeline › Linter › Connector: Strictssl | jenkins.pipeline.linter.connector.strictssl | JenkinsでSSLの自己署名証明書を使用している場合、「false」を設定(「false」にすることでinvalidなSSL接続を許容する) |
使用方法
- チェック対象のJenkinsfileを開く
- VSCodeでコマンドパレットを開く(Win:Ctrl+Shift+P、Mac:⌘+⇧+P)
- 「validate jenkinsfile」と入力(途中まで入力すればよい)し、「Validate Jenkinsfile」を実行
- Outputビューに「Jenkinsfile successfully validated.」と表示されれば、構文が正しい
以上。