メインコンテンツまでスキップ

GitHub Actions でテストを自動化する

GitHub Actions を使用して, テストを自動化しましょう。


このページの前提条件​

要件要件名摘要
GitHub アカウント有効なアカウントGitHub Actions を使用するためには, 有効な GitHub アカウントが必要です。
ヒント

このドキュメントでは, Github Actions を使用してテストを自動化する方法について説明しています。
そのため, このドキュメントを読む前に, Github Actions の基本的な知識を習得しておくことをおすすめします。

関連リンク: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. ワークフローの基本的な設定を記述する。​

ワークフローファイルの基本的な設定を記述します。

.github/workflows/my-scenamatica-workflow.yml

name: <ワークフローの名前>

on:
push:
# プルリクエストに対応する場合は, セクション「プルリクエストのテスト」を参照してください。

jobs:
<任意のジョブ名>:
runs-on: ubuntu-latest
steps:

ステップ4. テストを実行するステップを追加する。​

Scenamatica を使用してテストを行う前に, まずはあなたのプラグインを GitHub Actions 上でビルドする必要があります。
そのため, テストを実行する前に, ビルドを行うステップを追加しましょう。

この例では, Maven を使用してビルドを行っていますが, 他のビルドツールを使用している場合は適宜読み替えてください。

.github/workflows/my-scenamatica-workflow.yml
# ...

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 ファイル名> と記述してください。)

.github/workflows/my-scenamatica-workflow.yml
#...

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 権限が必要です。
これは, プルリクエストにテスト結果のコメントを書き込むために使用します。

.github/workflows/my-scenamatica-workflow.yml

on:
push:
pull_request:

# ...

permissions:
pull-requests: write