-
Notifications
You must be signed in to change notification settings - Fork 14
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
add: voicevox_onnxruntimeをビルドできるようにする #52
add: voicevox_onnxruntimeをビルドできるようにする #52
Conversation
…-voicevox-onnxruntime
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
ほぼLGTMです!!!
楽しみですね!!!!
.github/workflows/build.yml
Outdated
@@ -33,26 +40,28 @@ jobs: | |||
matrix: | |||
# TODO: 外せる`--compile_no_warning_as_error`は外す | |||
include: | |||
- artifact_name: onnxruntime-win-x64 | |||
- artifact_name: ${{ inputs.name || 'onnxruntime' }}-win-x64 |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
(提案とよりはこんな感じの書き方もあるよというコメントです)
これ、config用のjob作ってそこで計算結果のnameを出力すれば、needs.config.outputs.name
で使えるようになるんですよね・・・。
そっちの方が一応3文字短い。
ただまぁ変数定義がめんどくさい(↓こんな感じ)し、各jobで needs: [config]
がいるなどの変更も必要なのですが・・・。
https://github.com/VOICEVOX/voicevox_engine/blob/378b51e94da13974b59849cc47e3f9156c8bd678/.github/workflows/build-engine-package.yml#L36-L48
まあこのままでも今は良さそう!
将来もしもう1種類こういうのが増えたらさすがにconfig job書いた方が良さそう。
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
リリースタグ名 (e.g. voicevox_onnxruntime-1.17.3
)も共通化できるものの一つになりますね。このPRでもやらかしが一つありますし。うーん、今やっちゃいます?
(追記) まあこれはenv
でも十分ではあるのですが
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
ほんとにどちらでもという気はします。
あ、でも少なくともまとめといたほうが良さそうな気がします。規模的にコピペは辛くなってきてそう。
envでも良いけど、経験上あとあとenvじゃダメなとこでも使いたくなってくるんですよねぇ。
決めづらい!
考えかたとして「1回書いてみる」でモチベでそうなら書いてみる、出ないなら今回はenvにしてみる、とかどうでしょ。
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
ですね。一旦env
で…と思いましたが、これの$ONNXRUNTIME_NAME-$ONNXRUNTIME_VERSION
はちょっと辛いかも。ONNXRUNTIME_NAME
はともかく1.17.3
の部分の記述は一箇所にしたい気持ちがあります。
env:
ONNXRUNTIME_NAME:
|-
${{ inputs.target || 'onnxruntime' }}
ONNXRUNTIME_VERSION:
|- # workflow_dispatchでのバージョン名が入る。無指定なら適当なバージョン
${{ inputs.version || '1.17.3' }}
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
ちょっと意図汲み取れてないかもですが、envでもOKだと思います!
気が向いたらconfigジョブでも。
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
あ、一応意図を補足すると、env
からenv
は参照できないので定義の方法がこうなり、(他の部分はともかく)1.17.3
が二度表われるというのがどうなのかという感じです。
env:
ONNXRUNTIME_NAME:
|-
${{ inputs.target || 'onnxruntime' }}
ONNXRUNTIME_VERSION:
|- # workflow_dispatchでのバージョン名が入る。無指定なら適当なバージョン
${{ inputs.version || '1.17.3' }}
RELEASE_TAG:
|-
${{ inputs.release && format('{0}-{1}', inputs.target || 'onnxruntime', inputs.version || '1.17.3') || '' }}
# ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^
# =env.ONXRUNTIME_NAME (多分`|| 'onnxruntime'`は不要) =env.ONNXRUNTIME_VERSION
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
あーなるほどです!
config jobならシェルスクリプトが走らせられるので1回定義にできたり、1.17.3の方だけenvに書いたりとかはできそうですね。
run: | | ||
( | ||
git remote add private "$PRODUCTION_REPOSITORY_URL" | ||
git fetch private "refs/tags/v$ONNXRUNTIME_VERSION-voicevox" |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
(判断メモ)
コアの時はタグ名を指定できるようにしてましたが、タグ名がバージョンに依存した固定の名前でもとりあえず良さそう!
もしタグ名を指定できるようにしておけば、onnxruntimeのバージョンが変わっても、製品版側のバージョンを更新する必要はない時にさくっとアプデをビルドできるかも。
けどまあ運用してみないと分からないので、どっちでも良さそう!
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
後でvoicevox_onnxruntimeの本体部分もレビューして頂く流れになると思うのですが、minor version update (e.g. 1.19 → 1.20)レベルの変更だとコンフリクトが高頻度で発生するという可能性もあるかなと思ってます。まあ運用してみないとわからないというのは同意です。
Co-authored-by: Hiroshiba <[email protected]>
Co-authored-by: Hiroshiba <[email protected]>
Co-authored-by: Hiroshiba <[email protected]>
Co-authored-by: Hiroshiba <[email protected]>
|
|
おお!!ありがたいです!! ちょっと別のコード管理方法も思いついたので、該当箇所にコメントします 🙏 |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
LGTM!!!
ONNXRUNTIME_NAMEのとこはすみません、一旦おまかせということで。。。 🙇
|
マージします! |
内容
voicevox_onnxruntimeをビルドできるようにします。
inputs.target = "onnxruntime" | "voicevox_onnxruntime"
でビルド対象を選び、"voicevox_onnxruntime"
の場合次のsecrets
を用いたビルドとなります。${{ secrets.PRODUCTION_GITHUB_TOKEN }}
: 現行COREのと同じ役割${{ secrets.PRODUCTION_REPOSITORY_URL }}
: 現行COREのと同じ役割${{ secrets.PRODUCTION_DISCORD_WEBHOOK }}
: 失敗時にビルドログを送信(個人で動作確認済)対象タグは
v{バージョン}-voicevox
で固定です。関連 Issue
ref VOICEVOX/voicevox_project#24
スクリーンショット・動画など
その他