cocoa-mhlw / cocoa

Mozilla Public License 2.0
990 stars 113 forks source link

GitHub Actionsのセットアップ #75

Closed keiji closed 2 years ago

keiji commented 3 years ago

その機能リクエストは何らかの問題に関連しますか / Is your feature request related to a problem?

Pull Requestなどで、ファイルのアップロード漏れや特定のConfigurationでビルドできなくなるのを防ぐためにCIでビルドチェックを行いたい。

解決策についてお書きください / Describe the solution you'd like

GitHub Actionsを使う。

あなたが考える代替案についてご説明ください / Describe alternatives you've considered

Circle CIとかBitriseとか他にもCIはあるけれど、まずはGitHub Actionsを使って不満が出た時に検討する。

その他 / Additional context

keiji commented 3 years ago

iOS調査結果

iOSでビルドがうまくいかない原因はCovid19Radar.iOS.csproj<CodesignEntitlements>Entitlements.plist</CodesignEntitlements>が指定されていること。

iOSでアプリがExposure Notification APIを使うには、CodesignEntitlementsに指定するファイルにcom.apple.developer.exposure-notificationが設定されている必要がある。exposure-notificationが設定されていると特別なプロビジョニングプロファイルが必要になる。

そのためDebugビルドでSimulatorを指定していてもプロビジョニングプロファイルがないと怒られることになる。

GitHub ActionsでCOCOAをビルドする選択肢は、

  1. 実際に動作をしなくていい(ビルドチェックだけなので)、CodesignEntitlementsを指定しないConfigurationを作成する
  2. 何らかの方法でプロビジョニングプロファイルを安全な形で適用できるようにする

1は比較的簡単、2はセキュリティの問題もあってかなり厳しそうに思える。

keiji commented 3 years ago

GitHub Actionsで使うLinterを選定する。 開発チームと合わせる必要があるので、やるかやらないかも含めて要調整(個人的にはすごくやりたい)。

また、導入直前に、対象となる全ファイルにコードフォーマットをするコミットをする必要がある。

現時点でLinterに求める要件は次の通り。

現時点での候補はdotnet-format

https://github.com/dotnet/format

fumiya-kume commented 3 years ago

[提案] README.md にGithub ActionsのStatusバッジを追加してみませんか? Github Actions のStatusバッジはGithub Actionsの実行結果をREADME等へ表示できるGithub Actionsの機能です。 特別メリットがあるわけではないですが、CIの実行結果を確認しやすくなります。 参考: https://docs.github.com/en/actions/managing-workflow-runs/adding-a-workflow-status-badge

もし大丈夫そうなら、別個にIsseu立ててPR作成したいです。(kenjiさんがやっても大丈夫です) 新規でIssue立てるべき話題でしたらごめんなさい。

keiji commented 3 years ago

バッジいいですね! PullRequestもらえるとありがたいです。 Issueはこれに向けてもらってもいいですし、新しく作ってもらっても大丈夫です。

fumiya-kume commented 3 years ago

[提案] Github Actions の Workflow を見ていたところいくつか改善できそうなものを見つけたので提案したいです。 PoC をFork 先のRepository で作成しました。大丈夫そうならmerge したいです。 改善できそうな点

その他細かな最適化ができそうでした。

ちなみに、PoCで検証した結果、実行時間は Workflow 全体で 12min -> 6~7min まで高速化できました。

大丈夫そうならPRの形で確認いただけると嬉しいです。

keiji commented 3 years ago

ありがとうございます! CIの速さは心の余裕なのでPull Requestお待ちしています。

keiji commented 3 years ago

こんなの見つけたので記録

https://github.com/reviewdog/reviewdog

keiji commented 2 years ago

SonarCloudが導入されたので、こちらでやっていきたい。 https://sonarcloud.io/project/overview?id=cocoa-mhlw_cocoa-app