はじめに
Jenkins で基本的な Freestyle プロジェクトを設定するためのこの実験(Lab)へようこそ。Freestyle プロジェクトは、Jenkins において非常に柔軟で使いやすいオプションであり、あらゆる種類のプロジェクトに適しています。Web ベースのグラフィカルインターフェースを通じて、ビルドトリガー、ビルドステップ、ビルド後のアクションを設定できます。
この実験では、以下の方法を学びます。
- プロジェクトにシェルコマンドのビルドステップを追加する方法。
- トリガーを使用してビルドを自動的に実行するようにスケジュールする方法。
- 後で使用するためにビルド成果物をアーカイブする方法。
- ワークスペースのクリーンアップなどのビルド後のアクションを設定する方法。
Jenkins インスタンスはすでに実行されており、sample-project という名前の基本的な Freestyle プロジェクトが作成されています。デスクトップ上の Firefox ブラウザを開くことで、Jenkins Web インターフェースにアクセスできます。ブラウザは自動的に http://localhost:8080 を開くため、URL を手動で入力する必要はありません。ログインは不要です。
ビルドステップの追加
このステップでは、フリースタイルプロジェクトにビルドステップを追加します。ビルドステップはプロジェクトの核であり、コードのコンパイル、テストの実行、シェルスクリプトの実行など、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
トリガーによるビルドのスケジュール設定
このステップでは、ビルドトリガーを使用してビルドを自動的にスケジュールする方法を学びます。これは継続的インテグレーションの基本的な機能であり、定期的にビルドを実行できます。
sample-projectの構成ページ(プロジェクトページ > Configure)に戻ります。- Build Triggers セクションを見つけます。
- Build periodically の横にあるチェックボックスをオンにします。

- Schedule というテキストエリアが表示されます。このフィールドは cron 構文を使用してスケジュールを定義します。構文はスペースで区切られた 5 つのフィールドで構成されます:
MINUTE HOUR DAYOFMONTH MONTH DAYOFWEEK。 - ビルドを約 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-info.txtへのリンクがある Build Artifacts というセクションが表示されます。それをクリックすると、ファイルを表示またはダウンロードできます。

ワークスペースのクリーンアップ設定
この最終設定ステップでは、ビルド後のアクションを追加してワークスペースをクリーンアップします。これはディスク容量を節約し、各ビルドがクリーンな環境で開始されるようにして、以前のビルドで生成されたファイルからの干渉を防ぐための良い習慣です。
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 パイプラインを作成および管理できるようになりました。

