Qulacs-Osaka / qulacs-osaka

Development branch of qulacs at Osaka Univ
MIT License
13 stars 6 forks source link

Trigger to run wheel build and Windows CI #233

Closed ikanago closed 2 years ago

ikanago commented 2 years ago

wheel build と Windows CI は実行時間が30分程度かかり,かなりストレスになっています. これらは push や PR の更新のたびに実行する必要性が薄いため,PR へのコメントで走るように設定することで CI の待ち時間を減らすことができます. これは適当な bot を導入することで達成できそうなので,要件に合うものをこれから探します.

ikanago commented 2 years ago

bot を導入しなくても,pull_request_comment というイベントをトリガーとして CI を実行し,特定の文字列を含まない場合は実行をやめる,としてもよさそうです https://docs.github.com/en/actions/using-workflows/events-that-trigger-workflows#pull_request_comment-use-issue_comment

ikanago commented 2 years ago

approve をトリガにしてもよさそうです: https://docs.github.com/ja/actions/using-workflows/events-that-trigger-workflows#running-a-workflow-when-a-pull-request-is-approved

この場合 approve 後に push しても CI が走らないですが,そういう状況で approve を取り消してくれる設定があるようなので,これと組み合わせると merge 前に approve を要求しつつ最新のコードで CI を実行することを強制できそうです. https://stackoverflow.com/questions/40505904/is-there-a-way-to-make-github-un-approve-a-pull-request-if-a-new-commit-is-pushe

ikanago commented 2 years ago

まとめ:

設定

dev の branch protection rule で

という設定をしたうえで,windows と wheel build のトリガをレビュアーの approve にします.

メリット

微妙な点

他にもいい案があればこの issue に書き込んでください.

ikanago commented 2 years ago

pull_request_comment をトリガとする場合も,if: contains(github.events.comments.body, '[run ci]') みたいにすればスクリプトを書かなくてもよさそうで,こっちのほうが楽かも知れません

KowerKoint commented 2 years ago

ubuntu, windows, macos の CI をパスしないとマージできないようにする

これまで通り走ったすべてのCIがパスされるだけでいいのではないでしょうか…? トリガーをapproveにしつつ特定の変更をignoreすればいいと思います。

workflow-dispatchがあればCI落ち修正のre-runはなんとかなりますが、CIを走らせるためだけにコメントを書いてPRを汚すのも微妙だなと思っています…

ikanago commented 2 years ago

これまで通り走ったすべてのCIがパスされるだけでいい

たしかにこれでいいですね.

workflow-dispatch で十分ではあるんですが,ブランチをいちいち選択する必要があるみたいで,何個もあるブランチの中から選ぶ必要があったり走らせるブランチを間違えるおそれがあったりするのが微妙そうです. とはいえ CI を走らせるためだけにコメントを書くのも微妙ではあるんですよね...