-
Notifications
You must be signed in to change notification settings - Fork 163
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.yml の構成変更 #72
appveyor.yml の構成変更 #72
Conversation
headermake,makefilemakeをx64ビルドしないといけない理由ってなんかあるんでしたっけ? この2つの依存プロジェクトはリンクするわけではないのでx64である必然がないと思っています。 sakura.slnで「構成マネージャ」を開いたときの設定値 (x64 Release構成) |
x64 のビルドの必要はないです。 そこはポイントではないです。 |
おっしゃる意味はたぶん、理解できてる気がします。 違っているのは、何を修正すべきかの判断だと思います。 特定のコンフィグ(プラットフォーム)で何をビルドすべきか定義するのはslnです。 |
それは手段です。目的ではないです。
x64 のソリューションでのビルドが通らない問題を修正したい場合、 この PR はあるビルド構成の生成物があるために、別のビルド構成で x64 のビルドに関する話は、上記の問題が発生する場合の具体例であって 論点が違います。 |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
.yml がすっきりしましたね。実際に走っているビルドログも問題なさそうに見えました。
https://ci.appveyor.com/project/sakuraeditor/sakura/build/1.0.100
@berryzplus さん |
各ビルド構成ごとにクリーンな環境でビルドを行うのは、appveyorの元々の仕様である認識です。 標準動作に戻すなら、artifactsの定義にも標準が使える気がします。 認識が間違っていたら教えてください。 なお、内容に問題があるとは考えていないのでマージしてもいいと思います。 |
他のプロジェクトでは「各ビルド構成ごとにクリーンな環境でビルド」はせずに
独自定義しているのは #12 を将来的に対応可能なように 「artifactsの定義にも標準」というのはワイルドカードを使う方法ですか? |
いや、マニュアルを見ると appveyor が定義する変数があるっぽいです。 https://www.appveyor.com/docs/packaging-artifacts/
記述を斜め読みしてこんな書き方もできるはず、と思いました。
であるなら…と1つ前に書いたコメントにつながります。 |
だめでしたね。少なくとも build_script 内では無理そう。 |
そうですね。 ビルド失敗のコミットを残すために revert のほうがいいですか? |
rebase が良いです。 情報を残したいのであれば、以下のようにコメント書いておくくらいで良いかと。 失敗記録https://ci.appveyor.com/project/sakuraeditor/sakura/build/1.0.102 appveyor.yml
ビルドログ
|
自分とこでやってみた感じ、artifacts でなら使えそうでした。 https://ci.appveyor.com/project/berryzplus/sakura/build/1.0.35 ※sakura_lang_en_US.dllが取れてないのは出力先を変えてあるためです。 |
fb19156
to
f7e8144
Compare
fb19156 を rebase で消しました。
git rebase -i f7e8144 を実行すると以下の内容で sakura が起動する pick fb19156 変数の参照方法を変更
以下のように、pick を drop に書き換えて保存して全終了する
以下のように成功する
強制 push する
|
一度 rebase で最新のコミットを消した後、54f4778 で artifacts のみ変更しました。 |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
確認しました。
ログも問題ないように思います。
https://ci.appveyor.com/project/sakuraeditor/sakura/build/1.0.105
…pveyor-yml appveyor.yml の構成変更
概略
現状の appveyor.yml は一度のブートで Debug/Release の構成のビルドを行います。
修正の背景
しかしながら、#40 で試しに x64 対応したソリューションでは
x86 の構成をビルドした後に、x64 をビルドするとコンパイルが通りますが、
クリーン環境で x64 をビルドするとコンパイルエラーになります。
これは、x86 版では HeaderMake.exe がプロジェクトファイルと同じディレクトリに生成されて$(SolutionDir)$ (Platform)$(Configuration) に HeaderMake.exe が生成されるので
それを前提に preBuild.bat が実行されるが、
x64 では
preBuild.bat を実行実行しても必要なヘッダファイルが生成されないためです。
修正の目的
別のビルドの生成物によってビルドに成功したり、失敗する問題を検出するために
各ビルドがクリーン環境でビルドされるように変更します。
修正のデメリット
各構成をビルドするたびに、ターゲット環境の再起動等が走るので
トータルのビルド時間が長くなります。