はじめに
Jenkins における Freestyle プロジェクトの基本設定に関する実験へようこそ。Freestyle プロジェクトは、Jenkins において非常に柔軟で使いやすく、あらゆるタイプのプロジェクトに適した選択肢です。Web ベースのグラフィカルインターフェースを通じて、ビルドトリガー、ビルドステップ、ビルド後の処理を簡単に設定できます。
この実験では、以下の内容を学びます。
- プロジェクトにシェルコマンドのビルドステップを追加する。
- トリガーを使用してビルドを自動的にスケジュール実行する。
- ビルドアーティファクトをアーカイブして後で利用できるようにする。
- ワークスペースのクリーンアップなどのビルド後の処理を設定する。
すでに Jenkins インスタンスが起動しており、sample-project という名前の基本的な Freestyle プロジェクトが作成されています。デスクトップ上の Firefox ブラウザを開くことで、Jenkins の Web インターフェースにアクセスできます。ブラウザは自動的に http://localhost:8080 を開くため、手動で URL を入力する必要はありません。ログインは不要です。
ビルドステップの追加
このステップでは、Freestyle プロジェクトにビルドステップを追加します。ビルドステップはプロジェクトの中核であり、コードのコンパイル、テストの実行、シェルスクリプトの実行など、Jenkins が実行するアクションを定義します。
まずは、プロジェクトの設定ページに移動しましょう。
- デスクトップインターフェースから Firefox ブラウザを開きます。ブラウザは自動的に
http://localhost:8080を開くため、手動で URL を入力する必要はありません。ログインは不要です。 - Jenkins ダッシュボードに
sample-projectが表示されているので、その名前をクリックしてプロジェクトページに移動します。 - 左側のメニューで Configure(設定)をクリックします。

これでプロジェクトの設定ページが表示されました。ビルドステップを追加しましょう。
- 下にスクロールして Build Steps(ビルドステップ)セクションを探します。
- Add build step(ビルドステップの追加)ドロップダウンボタンをクリックし、Execute shell(シェルの実行)を選択します。

- テキストボックスが表示されます。Command(コマンド)ボックスに以下のコマンドを入力してください。
echo "Building the project..."
date
echo "Build complete."
- ページ下部の Save(保存)ボタンをクリックします。
これでビルドステップの設定が完了しました。実際にビルドを実行してみましょう。
- プロジェクトページで、左側のメニューにある Build Now(ビルド実行)をクリックします。
- Build History(ビルド履歴)セクションに新しいビルドが表示されます。ビルド番号(例:
#1)をクリックします。 - そのビルドの左側メニューで Console Output(コンソール出力)をクリックします。
追加したシェルコマンドの出力が表示され、ビルドステップが正常に実行されたことが確認できます。
Started by user admin
Running as SYSTEM
Building in workspace /var/jenkins_home/workspace/sample-project
[sample-project] $ /bin/sh -xe /tmp/jenkins12345.sh
+ echo 'Building the project...'
Building the project...
+ date
Tue Jan 1 12:00:00 UTC 2024
+ echo 'Build complete.'
Build complete.
Finished: SUCCESS
トリガーによるビルドのスケジュール設定
このステップでは、ビルドトリガーを使用してビルドを自動的にスケジュールする方法を学びます。これは継続的インテグレーション(CI)の基本的な機能であり、定期的にビルドを実行するために使用されます。
sample-projectの設定ページ(プロジェクトページ > Configure)に戻ります。- Triggers(ビルド・トリガー)セクションを探します。
- Build periodically(定期的に実行)の横にあるチェックボックスをオンにします。

- Schedule(スケジュール)テキストエリアが表示されます。このフィールドは cron 構文を使用してスケジュールを定義します。構文はスペースで区切られた 5 つのフィールド
分 時 日 月 曜日で構成されています。 - 約 1 分ごとにビルドを実行するには、Schedule フィールドに以下を入力します。
* * * * *
この cron 式は「毎分実行する」ことを意味します。Jenkins は負荷分散のために H 記号をサポートしていますが、H/1 * * * * は実際には 1 時間に 1 回実行されるため、毎分実行したい場合は * * * * * を使用してください。
- Save をクリックします。
これで、Jenkins は約 1 分ごとに sample-project の新しいビルドを自動的にトリガーするようになります。プロジェクトページの Build History を確認することで、これが実行されている様子を観察できます。
ビルドアーティファクトのアーカイブ
このステップでは、ビルドアーティファクトをアーカイブする方法を学びます。アーティファクトとは、コンパイルされたバイナリやレポートなど、ビルドによって生成された出力ファイルのことです。これらをアーカイブすることで、ビルド完了後にダウンロードできるようになります。
まず、アーカイブ可能なファイルを作成するようにビルドステップを修正する必要があります。
sample-projectの設定ページに移動します。- Build Steps セクションまでスクロールし、先ほどの Execute shell コマンドボックスを探します。
- スクリプトに新しい行を追加し、
build-info.txtという名前のファイルを作成します。$BUILD_NUMBERは、現在のビルド番号を保持する Jenkins 提供の環境変数です。
echo "Building the project..."
date
echo "Build complete."
echo "This artifact is from build #$BUILD_NUMBER" > build-info.txt
次に、このファイルをアーカイブするためのビルド後の処理を設定します。
- Post-build Actions(ビルド後の処理)セクションまでスクロールします。
- Add post-build action(ビルド後の処理の追加)ドロップダウンをクリックし、Archive the artifacts(アーティファクトのアーカイブ)を選択します。

- Files to archive(アーカイブするファイル)フィールドに、アーカイブしたいファイル名
build-info.txtを入力します。**/*.jarのようなワイルドカードを使用して複数のファイルをアーカイブすることも可能です。 - Save をクリックします。

それでは、Build Now をクリックして新しいビルドを実行してください。ビルドが完了したら:
- Build History で最新のビルド番号をクリックします。
- ビルドのステータスページに Build Artifacts(ビルドアーティファクト)というセクションが表示され、
build-info.txtへのリンクがあるはずです。それをクリックしてファイルを表示またはダウンロードできます。

ワークスペースのクリーンアップ設定
最後の設定ステップとして、ワークスペースをクリーンアップするためのビルド後の処理を追加します。これはディスク容量を節約し、各ビルドがクリーンな環境で開始されるようにするための優れた習慣であり、以前のビルドで生成されたファイルによる干渉を防ぐことができます。
sample-projectの設定ページに移動します。- Post-build Actions セクションまでスクロールします。
- Add post-build action ドロップダウンをクリックし、Delete workspace when build is done(ビルド終了後にワークスペースを削除)を選択します。

- Save をクリックします。

これで、sample-project の各ビルドが完了するたびに、Jenkins はワークスペースディレクトリ内のすべてのファイルを削除します。アーカイブされたアーティファクトは別途保存されるため、ワークスペースのクリーンアップの影響を受けないことに注意してください。これにより、ビルドアーティファクトを保持しつつ、次回の実行に向けてビルド環境をクリーンに保つことができます。
まとめ
この実験を完了したことをお祝いします。Jenkins の Freestyle プロジェクトを設定するための基礎を習得しました。
この実験では、以下のことを実践しました。
- ビルドステップとして Execute shell コマンドを追加する。
- cron 構文を使用して定期的にビルドをスケジュールする Build Trigger を設定する。
- ビルドアーティファクト を作成およびアーカイブする。
- ビルド後にワークスペースを削除する Post-build Action を設定する。
これらは、Jenkins を使用してビルド、テスト、デプロイのプロセスを自動化するための不可欠なスキルです。これらの概念を応用して、独自の CI/CD パイプラインを作成および管理できるようになりました。

