GitHub Actions でテストを自動化する
GitHub Actions を使用して, テストを自動化しましょう。
このページの前提条件
要件 | 要件名 | 摘要 |
---|---|---|
GitHub アカウント | 有効なアカウント | GitHub Actions を使用するためには, 有効な GitHub アカウントが必要です。 |
このドキュメントでは, Github Actions を使用してテストを自動化する方法について説明しています。
そのため, このドキュメントを読む前に, Github Actions の基本的な知識を習得しておくことをおすすめします。
このチュートリアル内では, Scenamatica Action を使用します。
このアクションを使用することで, Minecraft の EULA に同意したものとみなされます。
EULA に同意しない場合は, このアクションを使用しないでください。
また, このアクション及び Scenamatica は, Minecraft お よび Mojang AB が公式に認めたものではなく, また, Minecraft および Mojang AB とは一切関係ありません。
概要
このチュートリアルでは, GitHub Actions 連携機能を使用して, テストを自動化する方法について学びます。
これを完了すると, コミットのプッシュ時やプルリクエストのオープン時に, 自動でテストを実行して, リグレッションを防げます。
ステップ1. 読み込み時に自動で実行されるシナリオを記述する。
テストを自動化するためには, 読み込み時に自動で実行されるシナリオを記述する必要があります。
詳しくは以下のドキュメントを参照してください:
既にシナリオを記述している場合は, このステップをスキップしてください。
ステップ2. ワークフローファイルを作成する。
GitHub Actions でテストを自動化するためには, ワークフローのファイルを作成する必要があります。
ワークフローファイルの基本的な構文に関しては, GitHub Actions の公式ドキュメントを参照してください。
まずは, 空の YAML ファイルを ./github/workflows/<任意の名前>.yml
に作成してください。
このチュートリアルでは, ./github/workflows/my-scenamatica-workflow.yml
という名前のファイルを作成します。
ステップ3. ワークフローの基本的な設定を記述する。
ワークフローファイルの基本的な設定を記述します。
name: <ワークフローの名前>
on:
push:
# プルリクエストに対応する場合は, セクション「プルリクエストのテスト」を参照してください。
jobs:
<任意のジョブ名>:
runs-on: ubuntu-latest
steps:
ステップ4. テストを実行するステップを追加する。
Scenamatica を使用してテストを行う前に, まずはあなたのプラグインを GitHub Actions 上でビルドする必要があります。
そのため, テストを実行する 前に, ビルドを行うステップを追加しましょう。
この例では, Maven を使用してビルドを行っていますが, 他のビルドツールを使用している場合は適宜読み替えてください。
# ...
steps:
- name: Checkout the repository
uses: actions/checkout@v2 # プロジェクトをチェックアウトして, ビルド対象のコードを取得します。
- name: Set up project JDK
uses: actions/setup-java@v1
with:
java-version: 11
distribution: zulu
cache: maven # Maven のキャッシュを使用して, ビルドを高速化します(SHOULD)。 (Gradle の場合は gradle と記述してください。)
- name: Build with Maven
run: mvn clean package # Maven を使用してビルドを行います。 (Gradle の 場合は ./gradlew clean build と記述してください。)
ステップ5. Scenamatica を使用してテストを実行するステップを記述する。
Scenamatica は Scenamatica Action を使用して, GitHub Actions で使えます。
このアクションを実装しましょう。
plugin
には, ビルドしたプラグインの jar ファイルを指定します。 (Gradle の場合は build/libs/<プラグインの jar ファイル名> と記述 してください。)
#...
steps:
# ...
- name: Run tests with Scenamatica
uses: TeamKun/scenamatica-action@main
with:
plugin: target/<プラグインの jar ファイル名>
Scenamatica Action についての詳しい説明はこちら を参照してください。
ステップ6. ワークフローを有効化する。
このファイルを含むコミットを作成し, GitHub にプッシュしてください。
$ git add .
$ git commit -m "Add Scenamatica test workflow"
$ git push origin main
これにより, 以降のプッシュ時にテストが自動的に実行されるようになります。
これで, テストの自動化が完了しました。 お疲れ様でした。 🎉
他の応用的なチュートリアルを読むにはこちらを参照してください。
シナリオファイルの完全な構文についてはこちらを参照してください。
プルリクエストのテスト
プルリクエストに関連したイベントでテストを実行することもできます。
以下のように pull_request
イベントを 追加した後, トークンに権限を付与してください。
Scenamatica Action は, を使ってプリリクエストをテストするには, pull-requests: write
権限が必要です。
これは, プルリクエストにテスト結果のコメントを書き込むために使用します。
on:
push:
pull_request:
# ...
permissions:
pull-requests: write