Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

download_test.ymlが必ず落ちることがあるので運用をどうするか #619

Open
Hiroshiba opened this issue Sep 19, 2023 · 3 comments
Labels
要議論 実行する前に議論が必要そうなもの

Comments

@Hiroshiba
Copy link
Member

Hiroshiba commented Sep 19, 2023

内容

download_test.ymlではダウンローダーが想定されている同梱物を全て含んでいるかをテストしています。
今のところプッシュの頻度でテストが行われています。

一方同梱物をビルドする機構はリリースするたびに実行されます。
そのため、同梱物が変更された場合、リリース前にプッシュされたものは全てテストが落ちることになっています。
このテストの運用方法を考えたいです。

実現方法

  • 運用方法案1:プッシュされるたびにテストではなく、リリースされるたびにテストにする
    • 利点:プッシュ時にテストが落ちなくなる
    • 欠点:ダウンローダーにバグがあっても気づくのはリリースのタイミング
  • 運用方法案2:プッシュされるたびにテストにし、テストが落ちていたとしても無視する
    • 利点:ダウンローダーにバグがあった場合に気づける
    • 欠点:テストが落ちているのにマージしないといけない
  • 運用方法案3:download_testが落ちてもなかったことにできる機能を入れる(thx @qryxip !)
    • 利点:上記2つの案の欠点をなくせる
    • 欠点:実装・運用を考える必要がある

個人的には別に超大事なことではないと思っているので、ちょっと雑な運用方法でもいいかなと思ってます。
テストが落ちているのにマージするという運用は何か他のミスを誘発しかねないので、もし1か2で倒すとしたらテストの頻度を下げる案1の方かなと思ってます。

その他

@Hiroshiba Hiroshiba added the 要議論 実行する前に議論が必要そうなもの label Sep 19, 2023
@Hiroshiba
Copy link
Member Author

@qryxip さんから運用方法案3の案をいただきました。
とりあえずテストが落ちていてもマージする案2を採用しておいて、いずれ案3を実装するとかが良いかもとか思いました。

@Hiroshiba
Copy link
Member Author

Hiroshiba commented Oct 7, 2023

0.14.5のリリースを作って分かったのですが、過去のバージョンのprereleaseが最新になってしまって、mainブランチのものと整合性が取れずにテストが落ちることがありそうです。
なんか根本的に問題がある気がしました。

ダウンロードテストでやりたいのは2つあって、1つがmainブランチ/プルリクエストのダウンロードコードが正しいことの確認、もう一つがreleaseされた物が正しいかどうかの確認だと思います。
mainブランチのテストが落ちっぱなしなのは本当にダメな時に気づけないので頑張って解決が必要に感じます。

ちょっと色んな手を考えてみたのでどの方針が良さそうかご意見いただけると嬉しいです 🙇 @y-chan @qryxip

  1. mainブランチが更新されたたびにリリースする
    • 👍 ダウンロードコードとリリース物を両方テストできる
    • 🤔 Github Actionにそこそこの負荷がかかる
    • 🤔 すぐには作れない
  2. 製品版のリリースがあるたびにmainブランチでプレビュー版をリリースする
    • 👍 今すぐ実行可能
    • 🤔 手間がかかる
  3. ダウンロードテスト用のモックを作る
    • 👍 プルリクエスト含めダウンロードコードがテストできる
    • 🤔 すぐには作れない
    • 🤔 モックが正しいかどうかをテストする機構が必要かも
  4. リリース時のみテストするようにする
    • 👍 テストが落ちっぱなしにならない
    • 👍 今すぐ実行可能
    • 🤔 ダウンロードコードがおかしくなっていても気づくのが遅れる
  5. download_testが落ちてもなかったことにできる機能を入れる
    • 👍 プルリクエストのダウンロードコードがテストできる
    • 🤔 mainブランチのダウンロードコードが落ちるのはどうにもできない

個人的には、ダウンロードテストがそこそこに実行できる1の方法が良いのかなとか思いました!
ダウンロードする対象を変えるプルリクエストのテストが落ちますが、これは @qryxip さんの提案の5を足せば良いかなと!
(プラスで3もあればいいけど大変そう。)

それはそれとしてmainブランチのテストが落ちているのは今すぐ何とかすべきだと思うので、プレビュー版をリリースしようと思います。

@Hiroshiba
Copy link
Member Author

Hiroshiba commented Oct 16, 2023

  1. mainブランチが更新されたたびにリリースする

これ、製品版のリリースはメンテナの認可が必要なので、毎回リリースは厳しいことに気づきました・・・ 😇
なので

  1. 製品版のリリースがあるたびにmainブランチでプレビュー版をリリースする
  2. download_testが落ちてもなかったことにできる機能を入れる

この2つの併用が現実的な気がしました。

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
要議論 実行する前に議論が必要そうなもの
Projects
None yet
Development

No branches or pull requests

1 participant