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 から MinGW ビルドを外したい #974

Closed
berryzplus opened this issue Jul 27, 2019 · 6 comments · Fixed by #983
Closed

Appveyor から MinGW ビルドを外したい #974

berryzplus opened this issue Jul 27, 2019 · 6 comments · Fixed by #983

Comments

@berryzplus
Copy link
Contributor

問題内容

appveyorのビルドに時間が掛かっています。(おおむね30分

ビルド待ち時間が長いとレビューが辛いので、なんとか高速化したいです。

以前から #427 「appveyor のビルドで削れるものがないか検討する」がありますし、 #446 「Azure Pipelines を調査する」 で併行ビルドが可能な azure pipelines の利用が検討されてきました(既に #819 で利用中)。

この issue は #427 派生で「 appveyor から MinGW ビルドを削れないか」を検討します。
意味合いとして「MinGWビルドを廃止したい」ではなく、「MinGWビルドをAzure Pipelinesに移行したい」のつもりでいます。

再現手順

appveyorのビルドを行う
https://ci.appveyor.com/project/sakuraeditor/sakura/builds/26280954

再現頻度

100%

問題のカテゴリ

  • ビルドの問題
    • Appveyor
    • Azure Pipelines ※

※MinGWビルドの移行先としてAzulePipelinesを検討している、という意味です。

現状のビルド所要時間

まず、「appveyorのビルドに時間が掛かっています。(おおむね30分」の実態を共有する必要があると思います。

以下は最新ビルド結果からビルド所要時間を抜粋したものです。MinGWビルドの時間を太字にしています。

Job name Duration
Configuration: Release; Platform: BuildChm 58 sec
Configuration: Release; Platform: Win32 4 min 23 sec
Configuration: Release; Platform: x64 5 min 25 sec
Configuration: Release; Platform: MinGW 3 min 31 sec
Configuration: Debug; Platform: Win32 3 min 56 sec
Configuration: Debug; Platform: x64 4 min 52 sec
Configuration: Debug; Platform: MinGW 4 min 5 sec
total 27 min 43 sec

appveyorによるビルド所要時間は、混雑具合によってかなりバラ付きます。
この回のビルドは速いほうで、全体として「20分~50分くらい」かかっています。
このうち、MinGWビルドの所要時間は「6分~15分くらい」です。
MinGWビルドをappveyorから削った場合の全体時間は「15分~30分くらい」となる見込みです。

Azure Pipelines で MinGW ビルドする方法

Appveyor ⇒ Azure Pipelines の移行をするには、Azure Pipelines 上でMinGWビルドする方法を確立しなければならないと思います。

MinGWツールは azure pipelines で使えるツールの一部です。が、サクラエディタの MinGW ビルドを行うには azure pipelines に元から入っている MinGW ツールでは足りません。サクラエディタの MinGW ビルドを行うには msys2 が必要です。msys2 は azure pipelines に元から入っているツールではありません。なんとかして msys2 を用意する必要があります。

azure pipelines で使えるツールには chocolatey が居ます。chocolatey には msys2 のパッケージがあります。chocolatey経由で msys2 をインストールしてしまえば、あとは msys2 の世界になります。普通に pacman で mingw-w64-x86_64-gcc を入れてやれば、MinGWビルド環境を作ることができます。

現状のサクラエディタMinGWビルドは、ただmsys2やgccをインストールしただけではビルドできないことが分かっています。しかし、msys2やgccをインストールしてしまえば azure pipelines 上でMinGWビルドができそうであることも分かっています。この先は試行錯誤しながら進める話になりますが、「やってやれないことはない」と思っています。

@m-tmatma
Copy link
Member

いいと思います。

@berryzplus
Copy link
Contributor Author

うまくいかぬのです・・・。
要りそうなものを組み合わせてガッチャンコしてみたら bat 実行がコケるようになりました 😭
https://dev.azure.com/berryzplus2019/sakura/_build/results?buildId=47

仕方ないので azure pipelines について基礎から勉強中なう 😄

@berryzplus
Copy link
Contributor Author

Azure pipelinesで発生するコンパイルエラーをappveyorで再現することに成功:smile:

pacman-Syuu で msys2 のシステムアップデートを行うと、headermake.exeのビルドが失敗します:sob:

@berryzplus
Copy link
Contributor Author

appveyorをコケる状態にする変更(msys2最新化)をdtaftで出して、コケないための対策を追加で積むやり方がわかりやすいのかな、と思っています。
https://ci.appveyor.com/project/berryzplus/sakura/builds/26377538/job/vh8kwea27n8ad645

@m-tmatma
Copy link
Member

m-tmatma commented Aug 2, 2019

#979 が発生中

@berryzplus
Copy link
Contributor Author

要りそうなものを組み合わせてガッチャンコしてみたら bat 実行がコケるようになりました 😭
https://dev.azure.com/berryzplus2019/sakura/_build/results?buildId=47

この事象は azure pipelines の障害だった気配です。
batをbat以外のものに変換する作業をやりかけましたが、そんな対応は要らないっぽい:smile:

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 a pull request may close this issue.

2 participants