KidsStar 内で Reusable Workflow を使って共有している GitHub Actions
Reusable Workflowを配置するディレクトリです。他のリポジトリからuses:で参照可能な共有ワークフローが含まれています。
- Workflowファイル (*.yml): Reusable Workflow定義
- Shell Scripts (*.sh): ワークフローで使用されるシェルスクリプト(廃止予定)
Composite Actionを配置するディレクトリです。複数のステップをまとめた再利用可能なアクションが含まれています。
- 各アクションディレクトリ: アクション名のディレクトリ
action.yml- Composite Action定義ファイルProgram.cs- C#実装ファイル(アクションのメイン処理)global.json- .NET設定ファイル(使用するSDKバージョン等を定義)
graph TD
%% Reusable Workflows
subgraph "Reusable Workflows"
RW1[bump_up_asset_version.yml<br/>アセットバージョンの更新<br/>⚠️ 廃止予定]
RW2[bump_up_asset_version_v2.yml<br/>アセットバージョンの更新 v2]
RW3[bump_up_project_version.yml<br/>プロジェクトバージョンの更新<br/>⚠️ 廃止予定]
RW4[bump_up_project_version_v2.yml<br/>プロジェクトバージョンの更新 v2]
RW5[check_version_branch.yml<br/>バージョンブランチのチェック]
RW6[apply_code_style.yml<br/>コードスタイルの適用]
RW7[update_booth.yml<br/>Boothの更新]
RW8[create_version_branch.yml<br/>バージョンブランチの作成<br/>⚠️ 廃止予定]
%% Shell Scripts - nested inside Reusable Workflows
subgraph "Shell Scripts"
SH1[bump_up_asset_version.sh<br/>アセットバージョン更新<br/>⚠️ 廃止予定]
SH2[bump_up_asset_version_commit_and_push.sh<br/>アセットバージョン更新とプッシュ<br/>⚠️ 廃止予定]
SH3[bump_up_project_version.sh<br/>プロジェクトバージョン更新<br/>⚠️ 廃止予定]
SH4[bump_up_project_version_commit_and_push.sh<br/>プロジェクトバージョン更新とプッシュ<br/>⚠️ 廃止予定]
SH5[get_version.sh<br/>バージョン情報取得<br/>⚠️ 廃止予定]
SH6[shared.sh<br/>共通関数<br/>⚠️ 廃止予定]
end
end
%% Composite Actions
subgraph "Composite Actions"
CA1[get_unity_editor_executable_path<br/>Unity Editor実行パス取得]
CA2[get_pavilion_csproj_name<br/>PavilionのC#プロジェクト名取得]
end
%% Dependencies: Reusable Workflows -> Composite Actions
RW6 --> CA1
RW6 --> CA2
RW7 --> CA1
%% Dependencies: Reusable Workflows -> Shell Scripts (廃止予定の依存)
RW1 -.-> SH1
RW1 -.-> SH2
RW3 -.-> SH5
RW3 -.-> SH3
RW3 -.-> SH4
RW8 -.-> SH5
RW8 -.-> SH3
RW8 -.-> SH4
%% Dependencies: Shell Scripts -> Shell Scripts (廃止予定の依存)
SH2 -.-> SH6
%% Styling
classDef reusableWorkflow fill:#e1f5fe
classDef compositeAction fill:#f3e5f5
classDef shellScript fill:#e8f5e8
classDef deprecated fill:#ffebee,stroke:#f44336,stroke-dasharray: 5 5
class RW2,RW4,RW5,RW6,RW7 reusableWorkflow
class RW1,RW3,RW8 deprecated
class CA1,CA2 compositeAction
class SH1,SH2,SH3,SH4,SH5,SH6 deprecated
- AssetBundle もしくは Addressables のバージョンを一つあげる Workflow です
- オプションにより AssetBundle もしくは Addressables のいずれか片方を上げることも可能です
- 以下のファイルを更新します
Assets/AddressableAssetsData/AddressableAssetSettings.assetAssets/Settings/PavilionSetting.assetAssets/Resources/Entities/ProjectContextEntity.asset
- 注記: このワークフローは
bump_up_asset_version_v2.ymlに置き換えられる予定です
- AssetBundle と Addressables のバージョンをインクリメントする Reusable Workflow です(新版)
- オプションにより AssetBundle もしくは Addressables のいずれか片方を上げることも可能です
- 以下のファイルを更新してPRを作成します:
Assets/AddressableAssetsData/AddressableAssetSettings.asset(m_overridePlayerVersion)Assets/Settings/PavilionSetting.asset(addressablesCatalogVersion)Assets/Booth/Settings/PavilionSetting.asset(addressablesCatalogVersion)Assets/Resources/Entities/ProjectContextEntity.asset(assetBundleSingleManifestVersion)
- GitHub Actionsネイティブな実装で、実際に更新されたファイルのみPRに記載されます
- バージョン用のブランチを作成すると以下のファイル内のバージョン情報をそのバージョンに置き換える Workflow です
Assets/package.jsonAssets/Booth/Settings/PavilionSetting.assetAssets/Settings/PavilionSetting.assetpackage.jsonProjectSettings/ProjectSettings.asset
- 注記: このワークフローは
bump_up_project_version_v2.ymlに置き換えられる予定です
- プロジェクトのバージョンを指定されたバージョンに更新する Reusable Workflow です(新版)
- 以下のファイルを更新してPRを作成します:
package.jsonAssets/package.jsonAssets/Settings/PavilionSetting.asset(標準パビリオン)Assets/Booth/Settings/PavilionSetting.asset(ハイブリッドパビリオン)ProjectSettings/ProjectSettings.asset
- GitHub Actionsネイティブな実装で保守性が向上しています
- ブランチ名がバージョン形式(x.y.z)かどうかをチェックする Reusable Workflow です
- バージョン番号の抽出も行います
- 入力:
branch_name- チェックするブランチ名 - 出力:
is_version_branch- バージョンブランチかどうかversion- 抽出されたバージョン番号
- コードスタイルを適用するための Reusable Workflow です
- Unity プロジェクトに対してコード整形を実行します
get_unity_editor_executable_pathとget_pavilion_csproj_nameの Composite Actions を使用します
- Booth を最新版に更新するための Reusable Workflow です
- セルフホスト ランナー上で実行されます
get_unity_editor_executable_pathComposite Action を使用します
- バージョン用のブランチを作成するための Reusable Workflow です
- 指定されたバージョン番号でブランチを作成し、必要に応じてPRも作成します
- 注記: このワークフローは廃止予定です
- Pavilionプロジェクトのcsprojファイル名を取得するアクション
- Unity プロジェクトから適切なcsprojファイルを特定します
- 構成ファイル:
action.yml- Composite Action定義ファイルProgram.cs- C#実装ファイルglobal.json- .NET設定ファイル
- Unity Editorの実行パスを取得するアクション
- プラットフォームに応じた適切なUnity Editorのパスを返します
- 構成ファイル:
action.yml- Composite Action定義ファイルProgram.cs- C#実装ファイルglobal.json- .NET設定ファイル