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

DockerビルドCI: リリースビルド時にレイヤーキャッシュをpushしないようにする #708

Merged
merged 3 commits into from
Jun 21, 2023

Conversation

aoirint
Copy link
Member

@aoirint aoirint commented Jun 21, 2023

内容

の内容を実装します。

リリースビルド時にDocker Hubに保存していた、ほとんど使われることがないレイヤーキャッシュが保存されなくなり、
(現時点でリソース制限はありませんが)Docker Hubのリソースが節約されます。

Dockerイメージビルドが走るイベントごとのタグ対応表は以下のようになります。

masterブランチpush時(変更なし)

matrix.tag Dockerイメージタグ cache-from cache-to
(空文字列) latest latest-buildcache latest-buildcache
cpu cpu-latest cpu-latest-buildcache cpu-latest-buildcache
cpu-ubuntu20.04 cpu-ubuntu20.04-latest cpu-ubuntu20.04-latest-buildcache cpu-ubuntu20.04-latest-buildcache
nvidia nvidia-latest nvidia-latest-buildcache nvidia-latest-buildcache
nvidia-ubuntu20.04 nvidia-ubuntu20.04-latest nvidia-ubuntu20.04-latest-buildcache nvidia-ubuntu20.04-latest-buildcache

バージョン0.15.0リリース時(変更前)

matrix.tag Dockerイメージタグ cache-from(変更なし) cache-to
(空文字列) 0.15.0 0.15.0-buildcache 0.15.0-buildcache
cpu cpu-0.15.0 cpu-0.15.0-buildcache cpu-0.15.0-buildcache
cpu-ubuntu20.04 cpu-ubuntu20.04-0.15.0 cpu-ubuntu20.04-0.15.0-buildcache cpu-ubuntu20.04-0.15.0-buildcache
nvidia nvidia-0.15.0 nvidia-0.15.0-buildcache nvidia-0.15.0-buildcache
nvidia-ubuntu20.04 nvidia-ubuntu20.04-0.15.0 nvidia-ubuntu20.04-0.15.0-buildcache nvidia-ubuntu20.04-0.15.0-buildcache

バージョン0.15.0リリース時(変更後)

matrix.tag Dockerイメージタグ cache-from(変更なし) cache-to
(空文字列) 0.15.0 0.15.0-buildcache (なし)
cpu cpu-0.15.0 cpu-0.15.0-buildcache (なし)
cpu-ubuntu20.04 cpu-ubuntu20.04-0.15.0 cpu-ubuntu20.04-0.15.0-buildcache (なし)
nvidia nvidia-0.15.0 nvidia-0.15.0-buildcache (なし)
nvidia-ubuntu20.04 nvidia-ubuntu20.04-0.15.0 nvidia-ubuntu20.04-0.15.0-buildcache (なし)

関連 Issue

スクリーンショット・動画など

その他

@github-actions
Copy link

github-actions bot commented Jun 21, 2023

Coverage Result

Resultを開く
Name Stmts Miss Cover
voicevox_engine/init.py 2 1 coverage-50%
voicevox_engine/acoustic_feature_extractor.py 75 0 coverage-100%
voicevox_engine/dev/synthesis_engine/init.py 3 1 coverage-67%
voicevox_engine/dev/synthesis_engine/mock.py 36 2 coverage-94%
voicevox_engine/downloadable_library.py 93 5 coverage-95%
voicevox_engine/full_context_label.py 162 3 coverage-98%
voicevox_engine/kana_parser.py 86 1 coverage-99%
voicevox_engine/metas/Metas.py 33 0 coverage-100%
voicevox_engine/metas/MetasStore.py 29 14 coverage-52%
voicevox_engine/metas/init.py 2 0 coverage-100%
voicevox_engine/model.py 160 9 coverage-94%
voicevox_engine/mora_list.py 5 0 coverage-100%
voicevox_engine/part_of_speech_data.py 5 0 coverage-100%
voicevox_engine/preset/Preset.py 12 0 coverage-100%
voicevox_engine/preset/PresetError.py 3 1 coverage-67%
voicevox_engine/preset/PresetManager.py 81 2 coverage-98%
voicevox_engine/preset/init.py 4 0 coverage-100%
voicevox_engine/setting/Setting.py 11 0 coverage-100%
voicevox_engine/setting/SettingLoader.py 19 0 coverage-100%
voicevox_engine/setting/init.py 3 0 coverage-100%
voicevox_engine/synthesis_engine/init.py 5 0 coverage-100%
voicevox_engine/synthesis_engine/core_wrapper.py 201 159 coverage-21%
voicevox_engine/synthesis_engine/make_synthesis_engines.py 57 49 coverage-14%
voicevox_engine/synthesis_engine/synthesis_engine.py 130 11 coverage-92%
voicevox_engine/synthesis_engine/synthesis_engine_base.py 67 9 coverage-87%
voicevox_engine/user_dict.py 144 11 coverage-92%
voicevox_engine/utility/init.py 5 0 coverage-100%
voicevox_engine/utility/connect_base64_waves.py 37 0 coverage-100%
voicevox_engine/utility/core_version_utility.py 9 2 coverage-78%
voicevox_engine/utility/mutex_utility.py 11 1 coverage-91%
voicevox_engine/utility/path_utility.py 26 8 coverage-69%
TOTAL 1516 289 coverage-81%

@Hiroshiba
Copy link
Member

Hiroshiba commented Jun 21, 2023

まだdraft中だと思うのですが、ちょっと気づいたことがあるのでコメントをば!

cache-fromがlatestで、cache-toが0.15.0などであれば、cache-to実は要らないのかもと思いました。
ここのcache-toに書いたのってdockerhubのTAG一覧で表示されるんでしたっけ。だとしたら無い方が良いかも・・・?

(本当はたぶんマイナーバージョンごとにcacheできると良さそうではあるのですが)

@aoirint
Copy link
Member Author

aoirint commented Jun 21, 2023

まだdraft中だと思うのですが、ちょっと気づいたことがあるのでコメントをば!

cache-fromがlatestで、cache-toが0.15.0などであれば、cache-to実は要らないのかもと思いました。 ここのcache-toに書いたのってdockerhubのTAG一覧で表示されるんでしたっけ。だとしたら無い方が良いかも・・・?

(本当はたぶんマイナーバージョンごとにcacheできると良さそうではあるのですが)

@Hiroshiba #707 へのコメントでしょうか...?(似たようなPRが2つ立っているので、ややこしいですが)

#707#708 を組み合わせると、 #707 (comment) の表のようになり、コメントの通りの動作になると思います!

@aoirint
Copy link
Member Author

aoirint commented Jun 21, 2023

#707#708 の変更を組み合わせたビルドを試してみました。

リリースによるビルドで、レジストリにbuildcacheが作成されておらず、CIのログでもレイヤーキャッシュをpushしていないことが確認できます。

CIログの抜粋
(略)

#70 exporting to image
#70 exporting manifest sha256:3f9a1e06db43dbe31874141ca236612b80706288ec38a7670c7a022043eca061 done
#70 exporting config sha256:b4c7e289ce8130b1c17ae50f6459b8b9cf0bee68caf13b0b070c6ea112cd49a7 done
#70 exporting manifest sha256:239dc309663c1cac8df3ba23a8b0f0904ffed008b7ee26579427c1370deb4646 done
#70 exporting config sha256:370983605e33f347e9cdc4a38f02aead2c552d1f2d46b962c8b9b6f1aaa23802 done
#70 exporting manifest list sha256:f6fac688fde86452c2cffce333375e8005c0468f081bd5da4c8292ccbd53ac14 done
#70 pushing layers
#70 pushing layers 4.1s done
#70 pushing manifest for docker.io/aoirint/voicevox_engine:cpu-ubuntu20.04-0.15.0-aoirint.23@sha256:f6fac688fde86452c2cffce333375e8005c0468f081bd5da4c8292ccbd53ac14
#70 pushing manifest for docker.io/aoirint/voicevox_engine:cpu-ubuntu20.04-0.15.0-aoirint.23@sha256:f6fac688fde86452c2cffce333375e8005c0468f081bd5da4c8292ccbd53ac14 0.7s done
#70 DONE 9.6s

動作確認ができたので、Ready for reviewにしておきます。

@aoirint aoirint marked this pull request as ready for review June 21, 2023 14:31
@aoirint aoirint requested a review from a team as a code owner June 21, 2023 14:31
@aoirint aoirint requested review from y-chan and removed request for a team June 21, 2023 14:31
Copy link
Member

@Hiroshiba Hiroshiba left a comment

Choose a reason for hiding this comment

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

LGTM!!

でかなり把握できたのでこちらもレビューさせてもらいました・・・! @y-chan

latest以外のbulidcacheは全部消しちゃおうと思います!

@Hiroshiba Hiroshiba removed the request for review from y-chan June 21, 2023 19:57
@Hiroshiba Hiroshiba merged commit 3974766 into VOICEVOX:master Jun 21, 2023
@Hiroshiba
Copy link
Member

@Hiroshiba #707 へのコメントでしょうか...?(似たようなPRが2つ立っているので、ややこしいですが)

#707#708 を組み合わせると、 #707 (comment) の表のようになり、コメントの通りの動作になると思います!

これその通りで2つあるのを把握できてませんでした!! 🙇‍♂️

@aoirint aoirint deleted the patch-no-release-buildcache branch October 9, 2023 02:56
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.

Docker: リリースビルド時に不要なレイヤーキャッシュをpushしないようにしたい
2 participants