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

clone_depthを指定する #963

Merged

Conversation

berryzplus
Copy link
Contributor

@berryzplus berryzplus commented Jul 15, 2019

PR の目的

apveyorのgit cloneで取得する履歴の深さを制限して、git clone が失敗する問題を抑止します。

カテゴリ

  • CI関連
    • Appveyor

PR の背景

#954 で appveyor のシステムロケールを変更する処理を復活させようとしています。

システムロケールの変更をやめた理由は2つあります。

  1. appveyor を再起動させると遅い(再起動だけで2分くらいかかる
  2. git clone がたまに失敗していた

再起動に時間がかかる問題については、
#962 で提案しているように、再起動対象の環境を絞り込めば軽減できる気がします。

git cloneがたまにコケる問題についても何か手を打ちたいと考えています。
この問題については、原因が分かっているわけではありません。

  • 他のプロジェクト(=ほぼ海外PJ)では見たことがない
  • 日本語化してるのはサクラエディタくらい
  • 日本語化をやめていた期間、git clone失敗は発生しなかった(気がする

状況的なことから「日本語化していることが失敗の原因」と考えるのは正しい気がします。
まぁ、「弁護士を呼んでください!」な雰囲気ですけどね。

日本語化以外に、git cloneがコケる原因になることってないんだっけ?

fetch対象の物量によっては「非常に低い確率を踏む」ことがあるのかも知れません。
サクラエディタのコードベースは全部で12万行くらいで、決して大きいとは言えません。
履歴の量も5,000コミットに満たない程度なので、歴史は浅い方だと思います。

まー、その辺りの「現実」はサラッとスルーすることにして、
I/O操作の絶対量が多いとコケる可能性もあるんじゃないか?
と考えるなら、gitの機能を使って対策を打てるように思います。

gitには fetch 時に取得するリポジトリの履歴の深さを指定する機能があります。
5,000件の履歴すべてを取得するのと、最新1件の履歴を取得するのとでは、I/Oの絶対量が違います。
コケる原因がコレであるならば、深さ指定によってコケる確率を下げられるように思います。

PR のメリット

  • git clone がコケる対策になるかも知れません。
  • 取得する履歴が少なくなる分、ビルド開始が早くなります。(実測7秒⇒5秒

PR のデメリット (トレードオフとかあれば)

PR の影響範囲

  • appveyor の git clone。
  • git の履歴情報に依存するようなビルドスクリプトが使えなくなる
  • アプリ(=サクラエディタ本体)への影響はありません。

関連チケット

#962 help構築用にplatform定義を追加する
#650 [WIP] AppVeyor のビルドキャッシュを利用してビルド時間を削減(※およそ5分)できるようなオプションを用意します。

参考資料

https://pocke.hatenablog.com/entry/2018/12/19/015644
https://qiita.com/sonots/items/ce08c30d161ea0b4d5fd
https://www.appveyor.com/docs/how-to/repository-shallow-clone/

@AppVeyorBot
Copy link

@berryzplus
Copy link
Contributor Author

この件は Azure Pipelines 向け案件かなぁ・・・。
https://docs.microsoft.com/en-us/azure/devops/pipelines/yaml-schema?view=azure-devops&tabs=schema#checkout

@m-tmatma
Copy link
Member

m-tmatma commented Jul 19, 2019

@m-tmatma
Copy link
Member

再起動中に止まる問題。clone の失敗の問題は発生していない。
appveyor/ci#2456 (comment)
https://ci.appveyor.com/project/sakuraeditor/sakura/build/1.0.776/job/cgyyk0t6454rpe2l

@m-tmatma
Copy link
Member

リビルドかけた。

@AppVeyorBot
Copy link

Build sakura 1.0.2056 failed (commit 50e18f6624 by @berryzplus)

@AppVeyorBot
Copy link

Build sakura 1.0.2057 failed (commit 50e18f6624 by @berryzplus)

@m-tmatma
Copy link
Member

#962 で appveyor のシステムロケールを変更する処理を復活させようとしています。

#954 の誤り?

@AppVeyorBot
Copy link

Build sakura 1.0.2062 failed (commit 5a6bffec7b by @berryzplus)

@berryzplus
Copy link
Contributor Author

#962 で appveyor のシステムロケールを変更する処理を復活させようとしています。

#954 の誤り?

間違いってわけでもありませんが、#954 って書いたほうが分かりやすいのかも 😢

@m-tmatma m-tmatma added appveyor CI appveyor など CI 関連 【ChangeLog除外】 labels Jul 24, 2019
@m-tmatma m-tmatma added this to the v2.4.0 milestone Jul 27, 2019
@AppVeyorBot
Copy link

@m-tmatma
Copy link
Member

#971 マージ後リビルドかけて成功

@berryzplus berryzplus merged commit 5b0ffa4 into sakura-editor:master Jul 27, 2019
@berryzplus berryzplus deleted the feature/apply_shallow_clone branch July 27, 2019 13:05
HoppingTappy pushed a commit to HoppingTappy/sakura that referenced this pull request Jun 16, 2020
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
appveyor CI appveyor など CI 関連 【ChangeLog除外】
Projects
None yet
Development

Successfully merging this pull request may close these issues.

3 participants