Blogこの広告は、90日以上更新していないブログに表示しています。エンジニアの岡村です。Actions弊社ではマルチプラットフォーム向けのアプリをビルドすることが多いため、CIは重要です。Actionsへの移行を行いました。Actionsもそこそこ慣れてきたので、現時点で感じているワークフローを運用する際に便利だったことを紹介しておきます。Actionsのサマリー画面はデフォルトではごく僅かな情報しか載っていませんが、ワークフロー中にワークフローコマンドを実行することで追加情報を載せることが出来ます。docs.github.com特にworkflow_dispatchなどでワークフローを手動実行した場合などは、ワークフローの引数を後から確認することが難しい為、そういった情報を出力しておくことで後で混乱せずに済みます。GITHUB_STEP_SUMMARYはmarkdownが使えるため、以下のように出力しておけば表形式になって視認性が向上します。$GITHUB_STEP_SUMMARY以下の画像は一例ですが、GITHUB_STEP_SUMMARYに記述した内容は、このようにArtifactsの下に表示されます。Matchersを設定して、エラーの詳細をSummaryに出力するようにするGitHubにはproblem_matcherという機能があり、設定しておくとログ出力から正規表現で一致するログを検出して、わかりやすくSummeryに出してくれたりインラインコメントを付けてくれます。github.com例えばUnityビルドを行う場合、以下のようなMatcherを適用しておくとコンパイルエラーを拾ってくれます。]}Matcherを有効化するには、そのステップの直前に以下のようなコマンドを実行します。::add-matcher::.github/workflows/unity-problem-matcher.json以下の画像はこれまた一例ですが、上の設定をすることで以下のようにコンパイルエラー発生時に検出してくれます。コンパイルが成功し、テストが失敗した場合はテスト結果ファイルを解析するAction(こちらなど)に流す事が出来るのですが、テスト実行以前のエラーに関しては、通常はステップの中までログを見に行かなければならないので、Matcherを設定しておくことで時間が短縮できます。あと、上記画像では何故か同じエラーが4つも出力されていますが、まあ何も出ないよりはマシという事で一旦放置しています......。workflow_callでトリガーと処理を分割する一つのワークフローを、ワークフローの実行条件等を記述する呼び出し側と、ビルドなどの実際の処理を書く側に分割したところ、見通しが良くなりました。Scriptに比べてコードが重複しやすく、特にマルチプラットフォームで微妙にmatrix化し辛いような処理を書いているとすぐに同じコードだらけになってしまっていました。Scriptなら関数を使って同じ処理を纏めることが出来るのですが、Actionsではそれが出来ません。Actionsではそれが動作しない(2023年1月時点)ためです。Actions上で動かすためのステップに関しても中々の量になります。callという機能を使い、トリガー専用のworkflowと処理専用のworkflowを分けてみました。これによりdevelopブランチならテストとビルドを両方実施、featureブランチならテストだけ実施というように、実行タイミングの制御も各ワークフローに分散してしまうことがなくなりました。サンプル上で紹介したような機能を使い、現状クライアントアプリ用のリポジトリ内のActionsは以下のようになっています(見せられない所が多いので大幅にカットしていますが......)全体の形はこうなるという参考程度にしていただければ幸いです。Actionsは去年あたりからだいぶ使いやすくなってきたように感じます。runnerの選択肢や日本語ドキュメントの量、まだ欲しい機能などは色々あるのですが、現状でも他のCIサービスに引けを取らない充実度だと思います。Actionsを触り始めて見るのも良いのではないでしょうか。何か面白い使い方などを発見したら記事にしようと思います。ActionsとSlackとLambdaを連携して社内向け署名付きURLを生成するこんにちは、エンジニアのクロ(@kro96_xr)です。LiveのメッセージをUnityで取得してみるこんにちは、エンジニアの渡辺(@mochi_neko_7)です。CI...エンジニアの岡村です。5はてなブログをはじめよう!Synamonさんは、はてなブログを使っています。ブログを報告する引用をストックしましたストック一覧を見る閉じる引用するにはまずログインしてくださいログイン閉じる引用をストックできませんでした。再度お試しください閉じる限定公開記事のため引用できません。