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

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 ファイルを指定します。
scenamaticaScenamatica のバージョンを指定します。いいえ<ワークフローバージョンに依存>Scenamatica のバージョンを指定します。新しいバージョンがリリースされた場合は, この値を更新してください。
minecraftテスト対象の Minecraft のバージョンを指定します。いいえ1.16.5
server-dirテスト対象のサーバーのディレクトリを指定します。いいえserver

出力

全般

名前説明
successテストが成功したかどうかを示す真偽値です。true

エラー時のみ

エラーは Scenamatica 内部で発生したエラーを指します。またこのほかに, シナリオの記法が間違っている場合にも発生します。 successfalse の場合のみ, 以下の出力が行われます。

名前説明
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 を確認および変更してください。