Closed ikanago closed 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
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
まとめ:
dev
の branch protection rule で
という設定をしたうえで,windows と wheel build のトリガをレビュアーの approve にします.
他にもいい案があればこの issue に書き込んでください.
pull_request_comment
をトリガとする場合も,if: contains(github.events.comments.body, '[run ci]')
みたいにすればスクリプトを書かなくてもよさそうで,こっちのほうが楽かも知れません
ubuntu, windows, macos の CI をパスしないとマージできないようにする
これまで通り走ったすべてのCIがパスされるだけでいいのではないでしょうか…? トリガーをapproveにしつつ特定の変更をignoreすればいいと思います。
workflow-dispatchがあればCI落ち修正のre-runはなんとかなりますが、CIを走らせるためだけにコメントを書いてPRを汚すのも微妙だなと思っています…
これまで通り走ったすべてのCIがパスされるだけでいい
たしかにこれでいいですね.
workflow-dispatch で十分ではあるんですが,ブランチをいちいち選択する必要があるみたいで,何個もあるブランチの中から選ぶ必要があったり走らせるブランチを間違えるおそれがあったりするのが微妙そうです. とはいえ CI を走らせるためだけにコメントを書くのも微妙ではあるんですよね...
wheel build と Windows CI は実行時間が30分程度かかり,かなりストレスになっています. これらは push や PR の更新のたびに実行する必要性が薄いため,PR へのコメントで走るように設定することで CI の待ち時間を減らすことができます. これは適当な bot を導入することで達成できそうなので,要件に合うものをこれから探します.