Skip to content

kidsstar/github_actions

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

58 Commits
 
 
 
 
 
 

Repository files navigation

GitHub Actions 共有リポジトリ

概要

KidsStar 内で Reusable Workflow を使って共有している GitHub Actions

フォルダ構成

.github/workflows/

Reusable Workflowを配置するディレクトリです。他のリポジトリからuses:で参照可能な共有ワークフローが含まれています。

  • Workflowファイル (*.yml): Reusable Workflow定義
  • Shell Scripts (*.sh): ワークフローで使用されるシェルスクリプト(廃止予定)

.github/composite_actions/

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
Loading

Reusable Workflow 詳細

bump_up_asset_version.yml ⚠️ 廃止予定

  • AssetBundle もしくは Addressables のバージョンを一つあげる Workflow です
  • オプションにより AssetBundle もしくは Addressables のいずれか片方を上げることも可能です
  • 以下のファイルを更新します
    • Assets/AddressableAssetsData/AddressableAssetSettings.asset
    • Assets/Settings/PavilionSetting.asset
    • Assets/Resources/Entities/ProjectContextEntity.asset
  • 注記: このワークフローは bump_up_asset_version_v2.yml に置き換えられる予定です

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に記載されます

bump_up_project_version.yml ⚠️ 廃止予定

  • バージョン用のブランチを作成すると以下のファイル内のバージョン情報をそのバージョンに置き換える Workflow です
    • Assets/package.json
    • Assets/Booth/Settings/PavilionSetting.asset
    • Assets/Settings/PavilionSetting.asset
    • package.json
    • ProjectSettings/ProjectSettings.asset
  • 注記: このワークフローは bump_up_project_version_v2.yml に置き換えられる予定です

bump_up_project_version_v2.yml

  • プロジェクトのバージョンを指定されたバージョンに更新する Reusable Workflow です(新版)
  • 以下のファイルを更新してPRを作成します:
    • package.json
    • Assets/package.json
    • Assets/Settings/PavilionSetting.asset(標準パビリオン)
    • Assets/Booth/Settings/PavilionSetting.asset(ハイブリッドパビリオン)
    • ProjectSettings/ProjectSettings.asset
  • GitHub Actionsネイティブな実装で保守性が向上しています

check_version_branch.yml

  • ブランチ名がバージョン形式(x.y.z)かどうかをチェックする Reusable Workflow です
  • バージョン番号の抽出も行います
  • 入力: branch_name - チェックするブランチ名
  • 出力:
    • is_version_branch - バージョンブランチかどうか
    • version - 抽出されたバージョン番号

apply_code_style.yml

  • コードスタイルを適用するための Reusable Workflow です
  • Unity プロジェクトに対してコード整形を実行します
  • get_unity_editor_executable_pathget_pavilion_csproj_nameの Composite Actions を使用します

update_booth.yml

  • Booth を最新版に更新するための Reusable Workflow です
  • セルフホスト ランナー上で実行されます
  • get_unity_editor_executable_path Composite Action を使用します

create_version_branch.yml ⚠️ 廃止予定

  • バージョン用のブランチを作成するための Reusable Workflow です
  • 指定されたバージョン番号でブランチを作成し、必要に応じてPRも作成します
  • 注記: このワークフローは廃止予定です

Composite Actions 詳細

get_pavilion_csproj_name(PavilionのC#プロジェクト名取得)

  • Pavilionプロジェクトのcsprojファイル名を取得するアクション
  • Unity プロジェクトから適切なcsprojファイルを特定します
  • 構成ファイル:
    • action.yml - Composite Action定義ファイル
    • Program.cs - C#実装ファイル
    • global.json - .NET設定ファイル

get_unity_editor_executable_path(Unity Editor実行パス取得)

  • Unity Editorの実行パスを取得するアクション
  • プラットフォームに応じた適切なUnity Editorのパスを返します
  • 構成ファイル:
    • action.yml - Composite Action定義ファイル
    • Program.cs - C#実装ファイル
    • global.json - .NET設定ファイル

About

No description, website, or topics provided.

Resources

Stars

Watchers

Forks

Packages

No packages published

Contributors 5