GitHub ActionsでJakarta EEアプリを自動ビルド!初心者でもできるCI設定の基本
生徒
「GitHubにJakarta EEのコードを上げたんですけど、自動でビルドってできますか?」
先生
「できますよ。GitHub Actionsを使えば、Jakarta EEのアプリケーションを自動ビルドできます。」
生徒
「GitHub Actionsって難しそう…どうやって設定するんですか?」
先生
「大丈夫、YAMLファイルを一つ用意するだけで、CIが簡単に動かせますよ。一緒にやってみましょう!」
1. GitHub Actionsとは?
GitHub Actionsは、GitHubが提供するCI/CDツールです。リポジトリにコードをプッシュしたり、プルリクエストを作成したりしたタイミングで、自動でビルド・テスト・デプロイなどの処理を実行できます。
Jakarta EEのようなJavaエンタープライズアプリケーションでも、MavenやGradleと連携して、ソースコードのビルドやWARファイルの生成を自動化できます。
2. Jakarta EEアプリのMavenプロジェクトを準備
GitHub ActionsでJakarta EEアプリを自動ビルドするには、まずMavenで構成されたプロジェクトである必要があります。pom.xmlには以下のような記述を入れます。
<packaging>war</packaging>
<dependencies>
<dependency>
<groupId>jakarta.platform</groupId>
<artifactId>jakarta.jakartaee-api</artifactId>
<version>10.0.0</version>
<scope>provided</scope>
</dependency>
</dependencies>
この設定でmvn packageを実行すると、targetフォルダ内にWARファイルが生成されるようになります。
3. GitHub Actions用のワークフローファイルを作成
GitHub Actionsは、.github/workflowsディレクトリに配置されたYAMLファイルに従って動作します。まずは以下のようなファイルを作成してみましょう。
name: Build Jakarta EE App
on:
push:
branches: [ "main" ]
pull_request:
branches: [ "main" ]
jobs:
build:
runs-on: ubuntu-latest
steps:
- name: Checkout repository
uses: actions/checkout@v3
- name: Set up JDK 17
uses: actions/setup-java@v3
with:
java-version: '17'
distribution: 'temurin'
- name: Build with Maven
run: mvn clean package
この設定により、mainブランチに変更が加わると、自動でMavenによるビルド処理が開始されます。
4. Jakarta EEに必要なJDKバージョンの指定
Jakarta EE 10では、Java 11や17が推奨されています。GitHub Actionsではsetup-javaアクションを使って、JDKのバージョンを指定することができます。
もし将来的にJavaのバージョンが上がっても、この設定を変更するだけで対応可能です。
5. ビルド結果(WARファイル)をアーティファクトとして保存
生成されたWARファイルをCIの成果物としてダウンロード可能にするには、次のステップを追加します。
- name: Upload WAR artifact
uses: actions/upload-artifact@v3
with:
name: jakartaee-app
path: target/*.war
これにより、GitHubのActionsタブからWARファイルをダウンロードできるようになります。
6. 自動テストのステップを追加する
もしテストコードを含んでいる場合は、mvn testでユニットテストを実行するように設定しておくとよいでしょう。
- name: Run Tests
run: mvn test
テストが失敗した場合はその時点でCIが停止するため、品質チェックの自動化にも役立ちます。
7. GitHub ActionsのメリットとCIの導入効果
GitHub ActionsをJakarta EEアプリケーションに導入するメリットはたくさんあります。
- コードをプッシュするだけで自動ビルドされ、開発効率が上がる
- 環境のセットアップが不要で、どこでも同じようにビルドできる
- WARファイルを自動生成してダウンロード可能にできる
- CIによる品質チェックを自動化できる
これにより、手作業によるミスを減らしながら、チーム全体の開発スピードと信頼性を高めることができます。
8. Jakarta EEでCIを始める第一歩としておすすめ
GitHub Actionsは無料で使えるCI/CDツールとして、Jakarta EEの初心者にも非常におすすめです。特に、まだJenkinsなどのCIツールを導入していない場合や、小規模なプロジェクトであれば、GitHubだけで完結できるのが大きな魅力です。
Jakarta EEのプロジェクトにCI/CDの流れを取り入れる第一歩として、まずは自動ビルドから始めてみましょう。