LoginSignup
2
1

More than 1 year has passed since last update.

はじめてのGithub Actions〜Java,Maven編〜

Last updated at Posted at 2022-12-06

はじめに

本記事は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で管理されているソースコードを使いました。

image.png

Actionsタブを選択し、そこの上段にリンクのある、「set up a workflow yourself 」を押下します。

image.png

そうすると、GithubActionsのビルド設定ファイルの入力画面になりますので、そこで直接記載、コミットすれば良いだけです。
相当楽ですね!

今回はGithub公式サイトでの記載を参考に以下のようにしました。ポイントは以下です。

  • pushの度にビルドが行われるようにする
  • SpringBootのライブラリが大量に使われるので、都度ダウンロードにならないようにキャッシュさせる
  • 作られたJarファイルはアーティファクトとしてGithub上からダウンロードされるようにする
main.yml

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を動かしてくれます。

image.png

無事成功しました。

image.png

アーティファクト(ビルドされたJarファイル)もここからダウンロードすることができます。

image.png

簡単ですね!

まとめ

Github Actions、簡単ですね。今回はビルドだけを試してみましたが、テストも拡充させていきたいですね。

使ったGithubリポジトリは以下です。ご参考です。
https://github.com/omix222/springboot30snapshottry

2
1
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
2
1