はじめに
本記事はMDC Advent Calendar 2022の6日目の記事です。
多くの情報が出ているネタではありますが、実体験記録と、少しでもやってみようと思える人を増やしたいので、記事として残しておきたいと思います。
Github ActionsでCIしたい
手元でJavaソースをビルドするのも良いですが、何気なタイミングでGithub上のWebIDE上で、ちょろっとpom.xmlを修正したりする時にこれってビルドが通るのだろうか、、と心配になったことは無いでしょうか?
私はこれまでは壊れる可能性がある変更はローカルで変更、簡単なテスト、通ったらGithubへpushと普通にやってましたが、上記ができたら開発スピードアップするのでは?と考えてGithub Actionsもどんどん使う様になりました。
前提としては、SpringBootを使ったMavenプロジェクトになります。
よって、最新のソースコードで
mvn package
が成功しさえすれば良いということを目指します。
やり方
基本的にはGithubの公式サイトのドキュメント通りにやればOKです。
以下を参考にしました。
実施記録
おしゃれにやる場合は、GithubActionのワークフロー実行ファイルをymlで手元で書いてpushする、、というやり方なのですが、
一旦初心者なので今回はGithubのサイト上から実施しました。
まず手頃なJavaプロジェクトを用意します。最近リリースされたSpringBoot3を使ったMavenプロジェクトで自分のGithubで管理されているソースコードを使いました。
Actionsタブを選択し、そこの上段にリンクのある、「set up a workflow yourself 」を押下します。
そうすると、GithubActionsのビルド設定ファイルの入力画面になりますので、そこで直接記載、コミットすれば良いだけです。
相当楽ですね!
今回はGithub公式サイトでの記載を参考に以下のようにしました。ポイントは以下です。
- pushの度にビルドが行われるようにする
- SpringBootのライブラリが大量に使われるので、都度ダウンロードにならないようにキャッシュさせる
- 作られたJarファイルはアーティファクトとしてGithub上からダウンロードされるようにする
name: Java CI
on: [push]
jobs:
build:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v3
- name: Set up JDK 17
uses: actions/setup-java@v3
with:
java-version: '17'
distribution: 'adopt'
cache: maven
- name: Build with Maven
run: mvn --batch-mode --update-snapshots verify
- run: mkdir staging && cp target/*.jar staging
- uses: actions/upload-artifact@v3
with:
name: Package
path: staging
書けたら右上からStart CommitでOKです。
そうすると、Githubによって自動でファイルを検知、CIを動かしてくれます。
無事成功しました。
アーティファクト(ビルドされたJarファイル)もここからダウンロードすることができます。
簡単ですね!
まとめ
Github Actions、簡単ですね。今回はビルドだけを試してみましたが、テストも拡充させていきたいですね。
使ったGithubリポジトリは以下です。ご参考です。
https://github.com/omix222/springboot30snapshottry