CI/CD と Scenamatica の連携
このページ゙では, CI/CD と Scenamatica との連携の概要について説明しています。
概要
Scenamatica は, CI/CD パイプラインを使用して, シナリオテストの実行及びテストレポートの作成を自動化できます。
あなたのプロジェクトに Scenamatica を連携することは, 以下のようなメリットがあります。
- プラグインのテストを自動化する
Scenamatica を使用することで, プッシュ時などにプラグインのテストを自動で実行でき, 時間の節約になります。- プラグインの品質を監視する
プラグインの機能の正常性を継続して監視することで, プラグインの品質低下を即座に検出できます。- プルリクエストを自動的にテストする
プルリクエストを自動的にテストすることで, プルリクエストのマージによる品質低下を防げます。
現在は GitHub Actions のみに対応しています。
GitHub Actions によるテストの自動化
Github Actions は, GitHub が提供する CI/CD パイプラインです。
これを使用することで, GitHub のクラウド上でテストを自動化できます。
Scenamatica は, GitHub Actions でのテストをサポートしています。
テストは, PaperMC の指定された Minecraft バージョンの最新ビルドで実行されます。
Spigot や CraftBukkit などの他のサーバ実装には対応していません。
このアクションを使用することで, Minecraft の EULA に同意したものとみなされます。
EULA に同意しない場合は, このアクションを使用しないでください。
また, このアクション及び Scenamatica は, Minecraft および Mojang AB が公式に認めたものではなく, また, Minecraft および Mojang AB とは関係ありません。
これについての実践的なチュートリアルは, 以下のドキュメントを参照してください。
Scenamatica Action
Scenamatica Action は, GitHub Actions で Scenamatica を使用するためのアクションです。
このアクションは, PaperMC と Scenamatica をダウンロードし, サーバをビルド, テストを実行するまでの流れを自動で行います。
また, ビルドしたサーバはキャッシュされるため, 次回以降のテストではより高速にテストを実行できます。
これについての実践的なチュートリアルは, 以下のドキュメントを参照してください。
入力
名前 | 説明 | 必須 | デフォルト値 | 摘要 |
---|---|---|---|---|
plugin | テスト対象のプラグインの jar ファイルを指定します。 | はい | N/A | テスト対象のプラグインの jar ファイルを 指定します。 |
scenamatica | Scenamatica のバージョンを指定します。 | いいえ | <ワークフローバージョンに依存> | Scenamatica のバージョンを指定します。新しいバージョンがリリースされた場合は, この値を更新してください。 |
minecraft | テスト対象の Minecraft のバージョンを指定します。 | いいえ | 1.16.5 | |
server-dir | テスト対象のサーバーのディレクトリを指定します。 | いいえ | server |
出力
全般
名前 | 説明 | 例 |
---|---|---|
success | テストが成功したかどうかを示す真偽値です。 | true |
エラー時のみ
エラーは Scenamatica 内部で発生したエラーを指します。またこのほかに, シナリオの記法が間違っている場合にも発生します。
success
が false
の場合のみ, 以下の出力が行われます。
名前 | 説明 | 例 |
---|---|---|
runner-error-type | エラー(例外)の種類の文字列値です。 | java.lang.NullPointerException |
runner-error-message | エラーメッセージの文字列値です。 | Cannot invoke "java.io.File.toPath()" because "file" is null |
実行成功時のみ
テストの実行にエラーなしで成功した場合は, 以下が出力されます。
名前 | 説明 | 例 |
---|---|---|
tests | 実行されたテストの総数です。 | 10 |
test-passes | テストのうち, 成功したテストの総数です。 | 2 |
test-failures | テストのうち, 失敗したテス トの総数です。 | 3 |
test-skip | テストのうち, スキップされたテストの総数です。 | 0 |
test-cancels | テストのうち, エラーが発生したテストの総数です。 | 5 |
トラブルシューティング
Q. 今まで動いていたのに動かなくなった
A. キャッシュが壊れている可能性があります。
Scenamatica Action は, 2回目以降のテストではビルドしたサーバをキャッシュして, より高速にテストを実行します。 そのため, 何らかの要因によって, キャシュが破壊されてしまうと, テストが失敗する可能性があります。
問題の解決には, server-
から始まるキャッシュを削除す る必要があります。詳しくはこちらを参照してください。
Q. PaperMC サーバが起動しない
A. 使用している Java のバージョンが古い可能性があります。
Scenamatica は, Java 8 以上で動作します。また, PaperMC(1.16.5) は, Java 16 以上で動作します。
問題の解決には, Actions で使用している Java のバージョンを確認し, 必要に応じて更新する必要があります。
ワークフローファイルの java-version
を確認および変更してください。