windows Jenkinsのjob設定をexport/importする方法

jenkins

jenkins LTS 2.164.2 で試しました、別のpcのjenkinsに設定を移動するのが目的です。

ググってみると便利なgui系は存在せずコマンドプロンプトから攻めるみたいです。(もしかしたら便利な魔法あるかもしれないですが

Jenkins CLI
Jenkins – an open source automation server which enables developers around the world to reliably build, test, and deploy their software

まずはジョブの一覧出してみる

java -jar jenkins-cli.jar -s http://localhost:8080 -auth {user}:{path} list-jobs

まずはjobの一覧を表示してみましょう。これができなきゃ先に進めません。pathは通ってないのでカレントフォルダはjenkins-cli.jarのあるフォルダにしました。

 set JENKINS_URL=http://localhost:8080

java -jar jenkins-cli.jar -auth {user}:{path} list-jobs

事前に専用の環境変数JENKINS_URLに値を設定しておけば-sは省けます

最もベーシックなhttp connection modeを使いましたが、ssh conection modeも存在します。認証方法もファイルから読み込んだり、環境変数$JENKINS_USER_ID $JENKINS_API_TOKENを使う方法もあるみたいです。詳細はリンク先の公式doc読んでください

job設定をexport

java -jar jenkins-cli.jar -s http://localhost:8080 -auth {user}:{path} get-job {job} > C:\tmp\hoge.xml

注意点、jenkinsは標準ではwindows system系のフォルダにインストールされています。そのため一般ユーザーにはファイル書き込みの権限がありません。上記書き出し先で単純にUnityBuild.xmlとか指定すると権限がなく「アクセスが拒否されました。」となります

job設定のimport

 java -jar jenkins-cli.jar -s http://localhost:8080 -auth {user}:{path} create-job {job} < C:\tmp\hoge.xml

これは移行先のPCで行うコマンドです。

無事ジョブをコピーできました。