Skip to content

PR時に走るworkflowの数を減らす#382

Draft
y-chan wants to merge 8 commits into
VOICEVOX:mainfrom
y-chan:feature/decrement-workflows
Draft

PR時に走るworkflowの数を減らす#382
y-chan wants to merge 8 commits into
VOICEVOX:mainfrom
y-chan:feature/decrement-workflows

Conversation

@y-chan

@y-chan y-chan commented Jan 15, 2023

Copy link
Copy Markdown
Member

内容

題の通り
paths条件など、いろいろ絞ってみましたが、間違ってそうであればご指摘お願いします。

関連 Issue

@y-chan

y-chan commented Jan 15, 2023

Copy link
Copy Markdown
Member Author

かなり減ったと思うけど、それでも20個弱走っていて、test.ymlの影響範囲が結構大きいのが問題な気がしているので、これを目的に合わせて細分化したさがあります。
どうですかね...?

@Hiroshiba

Copy link
Copy Markdown
Member

細分化、良いと思います!!

@qryxip qryxip left a comment

Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

paths指定はここまで入れた方がよいと思います。

正直cargo-denyとかに留めておいた方がよい気もします。

Comment thread .github/workflows/build_and_deploy.yml Outdated
Comment thread .github/workflows/cargo-deny.yml Outdated
Comment thread .github/workflows/generate_document.yml Outdated
@qryxip

qryxip commented Jan 15, 2023

Copy link
Copy Markdown
Member

あーでも細分化する前提ならpathsを細かくした方がいいですね。

@y-chan

y-chan commented Jan 15, 2023

Copy link
Copy Markdown
Member Author

一旦Suggestionを取り入れて、細分化していきたいと思います...!

y-chan and others added 3 commits January 16, 2023 00:00
@y-chan

y-chan commented Jan 15, 2023

Copy link
Copy Markdown
Member Author

条件に合わせてactionsを分割したのと、結合してもよさそうなものを結合してみました。
私の主観で結合したので、まずそうだったら教えてもらえるとありがたいです...!

Comment thread .github/workflows/build_cpp_example.yml Outdated
Comment thread .github/workflows/test.yml Outdated
Comment thread .github/workflows/test.yml Outdated
Comment on lines +40 to +47
- name: Set up Rust (test only)
if: matrix.os != 'windows-2022'
uses: ./.github/actions/rust-toolchain-from-file
- uses: Swatinem/rust-cache@v2
with:
# cargoのキャッシュが原因でテストが失敗する場合はバージョン部分をカウントアップすること
key: "v2-cargo-test-cache-${{ matrix.features }}-${{ matrix.os }}"
- name: Run cargo test
shell: bash
run: cargo test -vv --features ,${{ matrix.features }}

xtask-generate-c-header:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v3
- name: Set up Rust
- name: Set up Rust (test and lint)
if: matrix.os == 'windows-2022'
uses: ./.github/actions/rust-toolchain-from-file
with:
components: clippy,rustfmt

Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

matrixに"components"を含む形でもよいのでは?
判定するときは${{ contains(matrix.components, 'clippy') }}とかにして。

Copy link
Copy Markdown
Member Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

確かに、とりあえず移植していたので思いつきませんでした...!
ちょっとやってみますね...!

Comment thread .github/workflows/test.yml Outdated
Comment on lines +48 to +49
- name: Validate Cargo.lock
run: cargo metadata --locked --format-version 1 > /dev/null

Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

別workflowに分離してもよさそうな気がします。cargo-fmtも。

Copy link
Copy Markdown
Member Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

ジョブの数が多いと並行ジョブ数上限に引っかかって、かえってCIにかかる時間が増えそうだったので、まとめられそうなものをまとめてみましたが、分ける方がメリットが大きそうでしょうか...?
いろんな視点からの意見が知りたいです:pray:

Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

ちゃんと追えてないのですが、Actions起動のオーバーヘッドもあるので、対象のpath範囲が同じならまとめちゃった方が早いのかなと思いました!

y-chan and others added 2 commits January 16, 2023 13:27
Co-authored-by: Ryo Yamashita <qryxip@gmail.com>
Co-authored-by: Ryo Yamashita <qryxip@gmail.com>
@Hiroshiba

Copy link
Copy Markdown
Member

こちら、そろそろマージできると嬉しいかもです!!

@qryxip

qryxip commented Mar 3, 2023

Copy link
Copy Markdown
Member

そういえばpathsですが、download_testのようにworkflow file自体を含めないといけない気がします。

@Hiroshiba

Hiroshiba commented May 13, 2023

Copy link
Copy Markdown
Member

@y-chan すみません、こちらどうでしょう・・・!
コアのテストに相当な時間がかかってしまっており。。。

@y-chan

y-chan commented May 18, 2023

Copy link
Copy Markdown
Member Author

ぱぱっとやっちゃいたいのですが、ちょっとActionsの書き方を調べるとかで時間がかかりそうなので、 @qryxip さんか @Hiroshiba さん、巻き取っていただけると大変助かります...!いかがでしょうか...?
(Allow edits and access to secrets by maintainersにチェックを入れているので、このPRをそのままいじっていただくのもいいですし、一旦closeして作り直してもらうでも大丈夫です)

巻取りが難しい感じでしたら、私の方で頑張ってみます...!

@Hiroshiba

Copy link
Copy Markdown
Member

なるほどです! 興味ありますが、ちょっといろんなタスクがあるので着手がかなり遅れる気がします・・・ 🙇‍♂️

@PickledChair

Copy link
Copy Markdown
Member

@y-chan @Hiroshiba こちら、もし良かったら作業引き継ぎますか?(作業を引き継いだことがないので、もしかしたらやり方を質問するかもしれませんが……)

@Hiroshiba

Copy link
Copy Markdown
Member

@PickledChair ぜひぜひ!!

@PickledChair

PickledChair commented May 20, 2023

Copy link
Copy Markdown
Member

@PickledChair ぜひぜひ!!

@Hiroshiba わかりました! とりあえず conflict を解消しました。もう少し内容を確認して、どんな作業をすべきか整理したいと思います。

@qryxip qryxip left a comment

Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

とりあえずいくつか気になった点を:

branches:
- "*"
- "**/*"
branches:

Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Suggested change
branches:
branches:

branches:
- "*"
- "**/*"
branches:

Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Suggested change
branches:
branches:

Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

build_cpp_example.ymlに分離したbuild-unix-cpp-exampleがまだ残っています。

Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

指摘ありがとうございます!

昨日の時点で気づいてはいて、ローカルでは直しています。あとで他の変更と一緒にまとめてpushするつもりでした

Comment on lines +16 to +17
paths:
- build_util/**

Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

参考: #345

Suggested change
paths:
- build_util/**
paths:
- .github/workflows/build_and_deploy.yml
- build_util/**

Comment on lines +7 to +8
paths:
- crates/voicevox_core**

Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Suggested change
paths:
- crates/voicevox_core**
paths:
- .github/workflows/build_cpp_example.yml
- crates/voicevox_core**

Comment on lines +7 to +9
paths:
- '**/Cargo.*'
- deny.toml

Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Suggested change
paths:
- '**/Cargo.*'
- deny.toml
paths:
- '**/Cargo.*'
- .github/workflows/cargo-deny.yml
- deny.toml

Comment on lines +8 to +9
- 'Cargo.*'
- crates/voicevox_core**

Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Suggested change
- 'Cargo.*'
- crates/voicevox_core**
- 'Cargo.*'
- .github/workflows/generate_document.yml
- crates/voicevox_core**

@PickledChair

Copy link
Copy Markdown
Member

@qryxip いくつかのコメントありがとうございます! 参考にさせていただきます。
もう少し全体をよく見てから変更・修正したいと思うので少しお待ちください……!

qryxip added a commit that referenced this pull request Dec 8, 2025
0.16.2のリリースのときにDiscordでも言ったが、現状の
`can_skip_in_simple_test`の考えかただと、一番壊れやすい部分がCIされずに
リリース直前になって壊れていることが発覚するということが起こる。というか
頻発している。
https://discord.com/channels/879570910208733277/893889888208977960/1432006190006800436

そのためmainブランチ上でのCIは"simple_test"としないこととする。CI時間に
ついては、 #382 のようにワークフローを分割したりキャッシュを(もちらん適
切に)効かせるといった方向で対処するべき。
qryxip added a commit that referenced this pull request Dec 31, 2025
対象のworkflowは今までフォークリポジトリ上でも無条件で動いてしまってお
り、リソースを圧迫していた。フォーク上で動かす必要は無い認識。

本当は(もうすぐ丸三年前になる)#382 をやりたいが、とりあえず`push`トリ
ガーの削減だけ自明なので行っておく。
qryxip added a commit that referenced this pull request Jan 5, 2026
#382 で書かれたものをベースに、今のこのリポジトリに沿うようにする。

.github/以下については漏れが怖いので、一括で`.github/**`という形の指定に
する。既存の`on.pull_request.path`にも問題がある気がするが、あったとして
も別PRでやることにする。

Co-authored-by: Yuto Ashida <y-chan@y-chan.dev>
Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

プルリクやコミット時に回るテストの数を減らしておきたい

4 participants