unagirabbit's blog

気づいたことをメモしています

VS CodeからJenkinsへ直接Pipelineを反映する

JenkinsのPipelineを作成する際に、都度ページを開いて反映したり、
コミットしてからビルドを行うのは非常に手間です。
VSCodeJenkins Jackは手元のPipelineを直接実行する事ができます。

Jenkins Jack

Jenkins Jackについて詳しくはGitHubをご覧ください。
https://github.com/tabeyti/jenkins-jack

初期設定

MarketPlaceのページはこちら
https://marketplace.visualstudio.com/items?itemName=tabeyti.jenkins-jack

チュートリアル
https://github.com/tabeyti/jenkins-jack/blob/master/TUTORIAL.md##setting-up-a-connection

サイドバーにJenkins Jackアイコンが表示されたらJENKINS CONNECTIONSの右にある+ボタンからJenkinsを追加します。
複数追加することができ、「右クリック」->「Select」で切り替えます。
これはsetting.jsonjenkins-jack.jenkins.connectionsとして保存されます。

主にできること

  • JENKINS CONNECTIONS
    登録されたJenkinsの一覧です。アクティブにできるのは1件なのでSELECTで切り替えます。
  • PIPELINES
    パイプラインのジョブ、JOBSはすべててのジョブが表示されます。
  • QUEUE ITEMS
    ビルドキューのジョブが表示されます。
  • NODES
    ノードが表示されます。

色々行えますがパイプライン実行のみ説明します。

Pipelineとスクリプトをリンクさせる

VS Codeから実行するにはまず手元のファイルとJenkinsのジョブをリンクされます。
PIPELINESからリンクしたいジョブを「右クリック」->「Add Script Link」でスクリプトのファイルを選択します。

リンクされたファイルのパスは絶対パスで保存されるため、
VS CodeSetting Syncで同期している場合に他環境だと変になります。
そのためsettingsSync.ignoredSettings除外しておくのが良いと思います。

{
    "settingsSync.ignoredSettings": [
        "jenkins-jack.pipeline.tree.items"
    ]
}

Pipelineのビルド

リンクできたらコマンドパレットからJenkins Jack: Pipeline Executeを選択するか、
PIPELINESでジョブを選択してExecuteします。
ビルドの出力はVS CodeのOutput(Pipeline Jack)に表示されます。

ビルドパラメーターの指定

初期設定だとPipelineをリンクするとスクリプトと同階層に*.config.jsonファイルが生成され、paramsでパラメーターを指定できます。
リンク時点だとparamsが空になっておりパラメーターが書かれていないnull状態です。
一度config.jsonファイルを削除してからPipelineを実行するとパラメーターのデフォルト値が書かれたconfig.jsonにできます。

{
    "name": "pipeline",
    "params": {
        "hoge": "hello",
        "fuga": "world"
    }
}

パラメーターを増やしたりデフォルト値を変更させたりしても自動では更新してくれません。
Pipeline › Params: Interactive Inputtrueだとビルド時に入力することもできます。