ローカルデプロイの自動化

Cloud Code モジュールのデプロイを自動化するには、ビルドでプロジェクトを公開、圧縮、およびデプロイするように C# プロジェクトファイルを設定します。詳細については、プロジェクトファイルについて を参照してください。

スクリプトでは、UGS CLI Deploy コマンドを使用します。

デプロイを CI/CD パイプラインに統合する場合は、CI/CD とのインテグレーション を参照してください。

前提条件

以下のステップに従います。

  1. Cloud Code モジュール を作成します。
  2. CLI のインストール (Unity Gaming Services CLI) の説明に従って、UGS CLI をインストール、設定、および認証します。

プロジェクトファイル設定

以下のプロジェクトファイル設定を使用して、Cloud Code モジュールのデプロイを自動化できます。

<Target Name="RemoveDirectory">
    <RemoveDir Directories="$(OutDir)Module/" />
 </Target>
<Target Name="PublishModule" DependsOnTargets="RemoveDirectory">
    <Exec Command="dotnet publish -r linux-x64 --no-self-contained -o $(OutDir)Module/$(AssemblyName)" />
</Target>
<Target Name="ZipModule" DependsOnTargets="PublishModule">
    <ZipDirectory SourceDirectory="$(OutDir)Module/$(AssemblyName)" DestinationFile="$(OutDir)Module/$(AssemblyName).ccm" />
</Target>
<Target Name="DeployModule" DependsOnTargets="ZipModule">
    <Exec Command="ugs deploy $(OutDir)/Module/$(AssemblyName).ccm" />
</Target>

上記の設定をコピーしてプロジェクトファイルに貼り付けます。

  • RemoveDirectory ターゲットは Module ディレクトリを OutDir ディレクトリから削除します。
  • PublishModule ターゲットはモジュールを Module ディレクトリに公開し、必要なアセンブリを生成します。
  • ZipModule ターゲットは Module ディレクトリを圧縮します。
  • DeployModule ターゲットは、モジュールを Cloud Code サービスにデプロイします。

Ready to Run コンパイル (任意)

Ready to Run コンパイルは、Cloud Code モジュールのコールドスタート時間を改善するオプションの機能です。このオプションがモジュールに与える影響を確認するには、Ready to Run を参照してください。

有効にするには、PublishReadyToRun プロパティを含むように PublishModule ターゲットを変更します。

<Target Name="PublishModule" DependsOnTargets="RemoveDirectory">
    <Exec Command="dotnet publish -r linux-x64  -p:PublishReadyToRun=true --no-self-contained -o $(OutDir)Module/$(AssemblyName)" />
 </Target>

ターゲットの実行

ターゲットを実行するには、プロジェクトディレクトリの端末から以下のコマンドを実行します。

msbuild /t:DeployModule

msbuild コマンドが見つからない場合は、msbuild パスを PATH 環境変数に追加することが必要な場合があります。

ノート: DeployModule を別のターゲット名に置き換えて、他の任意のターゲットを個別に実行できます。ターゲットは相互に依存するため、実行されるターゲットはそれが依存するターゲットも実行します。

予想される出力

デプロイに成功した場合は、以下の出力が表示されます。

Deployed:
    ExampleModule.ccm