Gakuto1112 / FiguraBlueArchiveCharacters

The avatars for Figura, the skin mod for Minecraft Java Edition, which are imitated characters who appear in "Blue Archive (ブルーアーカイブ)", the game for mobile devices.
https://youtu.be/JrPhLR34mLA
MIT License
25 stars 0 forks source link

ブランチをマージさせるワークフローの作成 #45

Closed Gakuto1112 closed 2 months ago

Gakuto1112 commented 3 months ago

概要

baseから分岐したブランチの変更をbase含む全てのキャラクターのブランチにマージするワークフローの作成する。

詳細

現在のベース機能の実装のフローでは、baseブランチから新規ブランチを作成 → 変更点を追加 → baseにマージ → 他のキャラクターブランチにもマージという流れになっている。このブランチをマージするという作業は作成したキャラクターが多くなればなる程、大変(言葉を選ばずに言えば「面倒」)になるため、このマージ作業を自動化するGitHub Actionsワークフローを構築する。

設計

ワークフローのトリガーは手動トリガーとする。自動的にはトリガーさせない。手動トリガー時にマージ元となるブランチ名を入力させる。ワークフローでは、入力されたブランチをbase含む全てのキャラクターブランチにマージさせる。

ワークフローのイメージは次の通り。

  1. ユーザーによる手動トリガーによるワークフローの実行。この時にマージ元のブランチ名を入力させる。
  2. 入力されたブランチが存在するか確認する。もしそのようなブランチがなければエラー終了させる。
  3. 入力されたブランチを対象の全てのブランチにマージさせる。
    • 対象のブランチはbaseブランチと「ブランチ名が大文字から始まるブランチ」である。
    • 対象ブランチに毎にmatrixを生成し、並列処理で実行する。
    • マージ時に競合が発生する場合はエラーを出力し、処理を中止する。

競合が発生し、マージができないブランチは手動でマージする。

既存のワークフローの1つであるdispatch_readme.yamlには既に対象のブランチを取得するジョブが定義されているので、これを分離独立させ、それぞれのフローから呼び出す形式に変更してもよい。

タスク