-
Notifications
You must be signed in to change notification settings - Fork 3
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
エディタ:GitHub Pages上でPRプレビューを実装する #58
Comments
issue作成ありがとうございます! 目的プルリクごとにブラウザ版エディタやStoryook等の専用静的ページを作り、レビューをしやすくして開発効率を高めるのが主目的です。 手段パッと思いつく方法はNetlify等ですが、こちらは価格的にスケールが難しそうだと判断しました。 展望汎用的な形にできれば、VOICEVOXエディタ以外でもとても有用なフレームワークになるのではと個人的に期待しています。 |
@sevenc-nanashi 少し見させていただきました!
📝 とりあえず全体のworkflowを眺めました |
-pageがvoicevox/voicevox、-botがvoicevox/editor-preview(仮称)ですね。
はい。そういう前提でコードを書いています(Artifactができるのを待機)
というと?GitHub APIではアクセスできますね。 |
(もう直ってそうですがメモとして) |
おーなるほどです! まあでもそこ含めてコード読むとわかりそう!! |
チェックしたい項目メモ
|
Jobが失敗落ちしたらArtifactを取らないようにしています。 これ、初回コントリビュータの承認待機がしんどいですね…cronあたりで追加で10分おきに回して差分があったらデプロイするようにしてもいいかもしれない? |
ちょっと提案です!! まだ考えきれてないので穴あるかもですが! PRごとに全artifactを総なめするpull型ではなく、push型にするのはどうでしょう? 👀 今のロジックはこうだと想像してます:
これをpush型にするとこうなりそう:
push型の利点はビルドが終わった後にデプロイを開始できる点だと思います。 欠点は作成・削除用2つのworkflowが必要なこと、 そもそも超荒業として、リポジトリAからリポジトリBへ直接git pushしちゃう手もあるかもです。 ちょっと色々精査してないので粗いかもですが、一旦アイデアまで!! |
↑で提案したpush型の方法ですが、おそらくPRを出した側でビルドした後、fork元(target)側でワークフローを発火させる必要があるのですが、その手法がGithub側に用意されてなさそうでした 😇 |
無理だと思います... |
ですよね。。 😇 ちょっと設計を議論したく、いくつか質問させてください!
|
ちょっとやっていましたが、かなり面倒(例えばブランチのフィルタのパーサーを作るとか...)なのでパスしたいです... |
なるほどです!!! 無念!!! 1点気になったのですが、artifactの期限が切れるとページが作られない感じでしょうか 👀 アーキテクチャの更新とかってまだ思いついたりされますか 👀 進め方として今考えてるのは、previewページリリース用のリポジトリの設定権限を @sevenc-nanashi さんにも付与し、メンテナンスをほぼ完全にお任せするとかだとやりやすいのかな~とか思ってたりします! フレームワークやライブラリの選定も自由で・・・! |
元だと、project-*とmainとプルリクのプレビューを作るようになってましたが、例えば:
とか色々とカスタマイズしたいと思うんですよね。それをactionsの引数で実装するのが面倒だなぁ…と。
多分作られなくなりますね。でもエラーで全体が死ぬことはないはず。 |
なるほどです!! このコメントの後半のこちらはどうでしょう 👀
|
現在進行形で進めてますね。 (あと何故か自分にリポ作成権限がありました) |
なるほどです!!楽しみ!! 名称について、ちょっと将来的にいろんなリポジトリのプレビューを担えないかと思ってたりするので、ちょっと汎用めの名前にしたいかもです…!! なので一旦editor専用じゃない名前だとありがたいかもです!! リポジトリは作っちゃっていただいてもOKです! 他のリポジトリと揃えて、mainブランチへの直接のコミットはせず、プルリクベースで進める感じで良いでしょうか? なるべくやりやすい形で進められれば🙏 |
自分のフォークで動くまでやった後にPull RequestのSquash MergeをInitial Commitみたいにする、でやろうと思います。 |
導入のためにやること・やったことのメモをここに残していこうと思います 🙏 まずはGithub App作成します! |
Github Appを作り、VOICEVOX Orgにインストールしました。 |
|
VOICEVOX/voicevox側の作業に入りました。
|
voicevox/preview-pages: |
VOICEVOX/voicevox側のtriggerが落ちてそう。なんでだろ、調べます! |
うーーーーん詰んだ!!! |
あとは
になってるけど、このパーミッションが |
お、まわりました!
ちなみに
|
mainブランチのbuildは成功してそうですが 収集に失敗してそう・・・?
|
artifactにアクセスするにはまた別の権限が必要だったりとか・・・? |
普通に名前をミスっていました... |
うーーーんどこが原因だぁ ちょっとartifactのread権限付けてみます。 |
artifactsは https://github.com/VOICEVOX/preview-pages/actions/runs/11699304255/job/32581144789
うーーーーむダメそう。権限戻します。。 |
どうやらWorkflowの名前じゃ無くJobの名前(i.e.: |
おー通知まで進みましたね!!! |
プレビューとか色々を直しました:VOICEVOX/preview-pages#5 |
エディタの個別ページ見れましたね!!!あとちょい!!! リスト一覧が表示できてないかも・・・!
|
@sevenc-nanashi ということでタスクは完了かなと思いました、お疲れ様でした!!実装ありがとうございました!!! 今回も良い機能が実装できたということで、こんな感じで SNS にツイートしたいと思っています!
あ、あとこのissueは数年間の間に何度も参照すると思います! と言ってもリポジトリとプレビューURLと、あとはVOICEVOX/voiecvoxのtrigger workflowくらい・・・? その変更と、このissueのクローズをもってプロジェクトの完了とさせていただければと!! |
一番上に書き足したのでCloseします。おつ! |
ツイートさせていただきました!! https://x.com/voicevox_pj/status/1857625465680441836 |
2024/11/16:実装しました 🎉
内容
エディタでPRを出すとPRの内容(Storybookやブラウザ版)が表示されるやつを実装したいです。
Pros 良くなる点
レビューがしやすくなる
Cons 悪くなる点
複雑になりそう
実現方法
https://github.com/sevenc-nanashi/vv-preview-demo-page
https://github.com/sevenc-nanashi/vv-preview-demo-bot
やってみました。
みたいな感じです。
その他
(なし)
The text was updated successfully, but these errors were encountered: