ロゴ ロゴ

【新年一発目】Github ActionsでCI環境を作る

ご挨拶

あけましておめでとうございます!!
2023年もよろしくお願いしますm_m
部長よりも先にフライングして記事書いておきます!

本題

今授業でGitHubを使ってチームワークをしています。

チームワークではJavaでLISPの処理系を作っていて、実装に合わせてテストコードを書いていっています。

しかし、
– 自身が担当した範囲だけテストコードを実行している
– そもそもテストコードだけ書いて実行していない

とミスが多かったのでテストコードの実行を自動化することにしました。

どうなったのか

うちのチームでは自身が実装したコードはブランチを切って、PRを作ってからマージされるというフローを踏むことにしています。
そこでPRが作られたタイミングでテストコードを走るようにすることで、実装したコードの検証が自動的になされるようにしました。

どうしたのか

GitHub ActionsでPRが作られたタイミングでイベントを発動するようにしました。

Github ActionsのサンプルにGradleやMavenでのやり方はありましたが、単なるJavaファイルのパッケージを実行する方法は見つからなかったので、強制的にGradleとして読ませるようにGradleプロジェクト生成時に作られるファイル配置を真似してgradle-wrapper.jarやbuild.gradleを配置しておきます。

ディレクトリ構成はこんな感じです。

build.gradleは次のように記載しました。

apply plugin: 'java'

repositories {
    mavenCentral()
}

dependencies {
    testImplementation 'junit:junit:4.12'
}

sourceSets.main.java.srcDirs = ['src']
sourceSets.test.java.srcDirs = ['test']

下記内容のファイルをymlとして.github/workflow以下に保存します。

on: pull_request

jobs:
  CI_TEST:
    runs-on: ubuntu-latest
    steps:
      - name: リポジトリからコードを引っ張ってくる
        uses: actions/checkout@v2

      - name: テスト環境にJavaの環境を作る
        uses: actions/setup-java@v2
        with:
          java-version: '11'
          distribution: 'adopt'

      - name: gradlewコマンドに実行権限を付与する
        run: chmod +x gradlew

      - name: テストを実行
        run: ./gradlew test --tests "*"

これらのファイル達をコミットすると反映されて自動テストが走るようになります。


↑テストが失敗するとこんな感じに表示される

おわり

2023年はいい年になってほしいですね〜

コメント入力

関連サイト