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

appveyor で clone に失敗する #43

Closed
m-tmatma opened this issue Jun 2, 2018 · 16 comments
Closed

appveyor で clone に失敗する #43

m-tmatma opened this issue Jun 2, 2018 · 16 comments
Labels
🐛bug🦋 ■バグ修正(Something isn't working) CI appveyor など CI 関連 【ChangeLog除外】
Milestone

Comments

@m-tmatma
Copy link
Member

m-tmatma commented Jun 2, 2018

#34 で直したはずだが、直っていない。

https://ci.appveyor.com/project/sakuraeditor/sakura/build/1.0.49

Build started
Set-WinSystemLocale ja-JP
Start-Sleep -s 5
git clone -q --branch=master https://github.com/sakura-editor/sakura.git C:\projects\sakuraeditor\sakura_1.0.49
fatal: destination path 'C:\projects\sakuraeditor\sakura_1.0.49' already exists and is not an empty directory.
Command exited with code 128

@kobake
Copy link
Member

kobake commented Jun 2, 2018

😭

@berryzplus
Copy link
Contributor

ほぼ分かってない人ですが対策案考えてみました。

こういういう流れな認識です。

  • appveyorの実行がたまに失敗する。(原因はgit cloneのclone先が空でないため)
      ↓
  • git cloneのclone先が毎回変わるように設定変更した
      ↓
  • やっぱりたまに失敗することが分かった   ←ココ

で、エラー発生時のログはこんな感じになってる認識です。

Build started
Set-WinSystemLocale ja-JP
Start-Sleep -s 5
git clone -q --branch=master https://github.com/sakura-editor/sakura.git C:\projects\sakuraeditor\sakura_1.0.49
fatal: destination path 'C:\projects\sakuraeditor\sakura_1.0.49' already exists and is not an empty directory.
Command exited with code 128

よくよく考えてみると、おかしな点があります。
git cloneする前に実行される3行は一体どこから来ているんでしょうか。
appveyor.yml はリポジトリに入っているファイルなのでgit cloneが終わるまで見られません。
見られないはずなんです。

appveyor.ymlが見られてるということは、1回git cloneしてるってことです。
同じ場所を指定して2回目のgit cloneをしたら当然コケます。
コケないほうがおかしいです。

じゃあどうして他のプロジェクトでは問題なくビルドできているんでしょうか・・・
ここからは憶測です。

appveyorにはWebページでビルド環境を設定するインターフェースがあります。
ここには初期化処理(=git cloneする前に行う処理)の指定ができる項目があります。

もし仮に、次のような手順でビルドを行っているとしたら辻褄が合います。

  • ビルド要求が来たらプロジェクト設定(Webから指定したもの)でVMを起動する。
  • git cloneしてappveyor.ymlを取得し、ビルド設定を確認する。
    このときプロジェクト設定とappveyor.ymlの内容が異なる場合、初期設定をやり直す。
  • プロジェクトをビルドして成果物を作成する

この仮定が正しいとすれば、Webの指定とappveyor.ymlの指定を合わせればgit cloneの問題は起きないことになります。

@m-tmatma
Copy link
Member Author

m-tmatma commented Jun 3, 2018

appveyor.yml はリポジトリに入っているファイルなのでgit cloneが終わるまで見られません。
見られないはずなんです。
appveyor.ymlが見られてるということは、1回git cloneしてるってことです。
同じ場所を指定して2回目のgit cloneをしたら当然コケます。
コケないほうがおかしいです。

clone するのは必須ではないみたいです。
https://teratail.com/questions/14124

@berryzplus
Copy link
Contributor

clone するのは必須ではないみたいです。
https://teratail.com/questions/14124

wgetだったとして、どこにダウンロードするんでしょうか。
こういう感じのコマンドになるんじゃないですかね?

$> wget -o C:\projects\sakuraeditor\sakura_1.0.49\appveyor.yml https://raw.githubusercontent.com/sakura-editor/sakura/master/appveyor.yml

エラー原因で言われている状況と一致するように見えませんか?

destination path 'C:\projects\sakuraeditor\sakura_1.0.49' already exists and is not an empty

ぼくが言ってるのは可能性の話です。
誰かが答えを持ってるならその通りにしたらいい。
そうじゃないなら可能性を探して潰していくしかないと思います。

@kobake
Copy link
Member

kobake commented Jun 3, 2018

確かに .yml 取得のロジックが謎なんですよね……。

それとは別件の話ですが、AppVeyor 実行タイミングが「ブランチ push時」と「PR 操作時」の2か所になっていたのを「ブランチ push時」の1か所のみに絞りました。
なんだか PR 修正時に毎回2回ビルドが走っているのが気になっていたので。

@m-tmatma
Copy link
Member Author

@m-tmatma
Copy link
Member Author

質問しました。
appveyor/ci#2433

@m-tmatma m-tmatma added the 🐛bug🦋 ■バグ修正(Something isn't working) label Jun 11, 2018
@m-tmatma
Copy link
Member Author

返事返ってきた。

Can you try adding another ‘Start-Sleep -s 5’ after the ‘Restart-Computer’ command to give enough time for the clone script to work as expected.

@m-tmatma
Copy link
Member Author

以下チケットが作成された。
appveyor/ci#2435

@kobake
Copy link
Member

kobake commented Jun 20, 2018

#96 の対応後、ここしばらくは clone 失敗してないですよね。
対応は一旦完了したということでクローズしましょうか。
@m-tmatma さん的にも問題ないという判断であればクローズお願いします。

クローズしたとして、仮にその後また発生するようなことがあれば Reopen しましょう(発生しないことを祈る)

@m-tmatma
Copy link
Member Author

m-tmatma commented Jun 20, 2018

クローズしていいと思いますが、
クローズするタイミングで appveyor/ci#2433 もクローズして
同時に #151 を appveyor に報告しようと思います。

@m-tmatma
Copy link
Member Author

@m-tmatma m-tmatma added this to the next release milestone Jul 8, 2018
@ds14050 ds14050 added 🐛bug🦋 ■バグ修正(Something isn't working) CI appveyor など CI 関連 【ChangeLog除外】 labels Sep 18, 2018
@berryzplus
Copy link
Contributor

久々に発生したようなので再オープンします。

https://ci.appveyor.com/project/sakuraeditor/sakura/builds/20877767/job/pg93kigwcs6o7m3w

Build started
git clone -q https://github.com/sakura-editor/sakura.git C:\projects\sakura
git fetch -q origin +refs/pull/689/merge:
fatal: unable to access 'https://github.com/sakura-editor/sakura.git/': OpenSSL SSL_read: SSL_ERROR_SYSCALL, errno 10054
Command exited with code 128

今後頻発しないようであれば何も対応せずに閉じてよいかも。

@berryzplus berryzplus reopened this Dec 9, 2018
@takke
Copy link
Member

takke commented May 17, 2019

その後頻発していないようなので閉じておきます。

@m-tmatma
Copy link
Member Author

#962 (#963) を対応する場合に、問題となってくるので再オープン

@m-tmatma m-tmatma reopened this Jul 19, 2019
@berryzplus
Copy link
Contributor

その後発生してないように思うので、閉じておきます。

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
🐛bug🦋 ■バグ修正(Something isn't working) CI appveyor など CI 関連 【ChangeLog除外】
Projects
None yet
Development

No branches or pull requests

5 participants