みなさんこんにちは。今年の夏は久しぶりにちょっと外に出ることができるかなと思って予定を立てていたものの、過去最大のコロナ第7波到来で全ての予定が爆散してしまいました。今回は本当にすごくて、身近でもどんどん感染報告が上がってきています。かくいうわが家でも結構な熱や咳、鼻水といった症状が出て全員ダウンして、これは遂に…………ッ!?!?と思って病院で検査を受けたのですが、見事陰性でちょっと肩透かしでした。どうやら普通の風邪も流行っているようなので、みなさんお気を付けください。

Jenkinsを使ってみる
前回は、CI/CDについてざっくりとご紹介しました。正直、このあたりは実際に手を動かしてみないと、なぜ必要なのか、あると何が嬉しいのか、運用する際に何が大変なのかといったことを実感するのは難しいです。こういう場合はとりあえずサクサクと手を動かしてみることをオススメします。ということで、今回から実際にJenkinsを使ってみます。
Jenkinsの準備
Jenkinsのインストール方法は "Jenkins Windows インストール" などのキーワードで検索するとたくさんヒットするので、ここで改めて解説する必要はないかと思います。手元にWindows環境しかないよッ!!という人も、インストーラが用意されているので安心して進めてください。
注意事項としては、日本語で検索して出てくる解説ページでは、JDK(Java)のインストールまで一緒に行われるタイプのインストーラを使用していることが多いですが、現在(2022年8月)のインストーラではJDKは別途インストールが必要になっている点が挙げられます。また、JDKのバージョンにも注意が必要です。JenkinsではJava 1.8と11が対応バージョンとなります。最新版はJava18/17なので、バージョンを間違えないようにしましょう。古いバージョンはダウンロードサイトのJava archiveから見つけることができます。古いバージョンのJavaをシステムにインストールするのは気持ち悪いので、"x64 Compressed Archive" をダウンロードして適当なところに展開して使うようにするのが良いでしょう。Jenkinsのインストールを進めるとJDKのパスを聞かれるので、展開配置したものを指定します。

またJenkinsは、標準ではWindowsのサービスとして起動するようになっているのですが、前回触れたようにGUIが関連するものを扱う際に問題があるので、サービスとしては起動しないようにしておきます。

Jenkinsの起動
Jenkinsがインストールできたら起動します。先ほど書いたようにサービスとしてではなく普通のアプリケーションとして起動するので、起動用BATファイルを用意します。以下の内容をJenkinsのインストールフォルダに作成します。
※パスは適宜読み替えてください。
@echo off
set JAVA_HOME=C:\Program Files\Java\jdk-11.0.15.1
set PATH=%PATH%;%JAVA_HOME%\bin
java -jar Jenkins.war --httpPort=8080
作成したらjenkins.batを起動します。最初はWindowsセキュリティの重要な警告が出ますが、アクセスを許可しておきます。

設定が正常にできていれば、Jenkinsが立ち上がります。…………と言ってもコマンドプロンプトに文字がバババーっと並んでいるだけなので、これだけではよくわからないですね。

ブラウザで http://localhost:8080/ にアクセスしてちょっと待つと、Unlock Jenkins画面が表示されます。ここまでくれば、後は通常の環境構築のながれと同じです。

最終的に「Jenkinsへようこそ!」というメッセージが表示されたらインストールは完了です。

ジョブをつくってみる
[新規ジョブ作成]からジョブをつくってみます。

ジョブ名に Notepad と入力し、[フリースタイル・プロジェクトのビルド]を選んでOKします。

ビルドで[ビルド手順の追加]から[Windowsバッチコマンドの実行]を選択し、入力欄に notepad.exe と入れて保存を選びます。


これで Notepad プロジェクトを作成できました。

左側のメニューにある[ビルド実行]をクリックします。すると、メモ帳が立ち上がります。

このとき、Jenkinsの画面左下では #1 ジョブが実行中という表示になっています。メモ帳を閉じると、Jenkins上では #1 ジョブが成功した状態になります。

これで、GUI付きのアプリケーションをJenkins上で実行する準備ができました。このように[Windowsバッチコマンドの実行]を使用すると、BATファイルに書くことのできる処理を記述して、Jenkins上で実行できます。
ビルドのトリガを設定する
先ほどは、Jenkinsのメニューからビルドを開始しました。コードをpushしたり、何か別のシステムと連携してビルドを開始したい場合、メニューから実行する方法は不便です。そこで、ビルド・トリガを用意します。ビルド・トリガの種類はいくつかありますが、特定のURLにアクセスするとビルドを開始するようにします。
プロジェクトの設定から[ビルド・トリガ]を選び、[リモートからビルド]にチェックを入れます。認証トークンを求められるので、適当な文字列を入力します。アクセスする際、この文字列が正規なアクセスであることを証明します。

設定がおわったら保存を押します。ブラウザからアクセスしてみます。
http://localhost:8080/job/Notepad/build?token=JENKINS_BUILD_TRIGGER
上手くいくとビルドが始まり、メモ帳が立ち上がります。

ちがいがわかりづらいですが、#2 ジョブが実行されていることがわかります。
この方法であれば、URLにアクセスするだけでビルドを開始できるので応用範囲がとても広いです。Gitのリポジトリであれば、push後に実行する処理を指定できるため、ここでURLにアクセスすれば自動でビルドを開始できますし、レンダーサーバ上で何か処理をした後にJenkinsで処理を走らせるというようなこともできます。
まとめ
今回はJenkinsの環境構築と、映像関連の現場で必要になる設定をみていきました。準備が整ったので、引き続きJenkinsを使った自動ビルド/テスト環境構築を進めていきます。
第46回の公開は、2022年9月を予定しております。

痴山紘史
日本CGサービス(JCGS) 代表
大学卒業後、株式会社IMAGICA入社。放送局向けリアルタイムCGシステムの構築・運用に携わる。その後、株式会社リンクス・デジワークスにて映画・ゲームなどの映像制作に携わる。2010年独立、現職。映像制作プロダクション向けのパイプラインの開発と提供を行なっている。新人パパ。娘かわいい。
TEXT_痴山紘史 / Hiroshi Chiyama(日本CGサービス)
EDIT_尾形美幸 / Miyuki Ogata(CGWORLD)