Nagarei / DxLibEx

DXライブラリC++化プロジェクト
Boost Software License 1.0
31 stars 3 forks source link

appveyorでCIをつくる #68

Open yumetodo opened 8 years ago

yumetodo commented 8 years ago

Build status

36 #67 より

Travis-Clしようとしたが、LinuxでDirectXをコンパイルとか骨が折れすぎるので、Windows環境が無料で使えるappveyorを使う。なんと.slnがあればビルドできる。

ただDxLibって自己解凍exeで配布なんだよな・・・、Cl上で解凍できるのかな

原則としてbranchごと、VSのバージョンごとにclを作る形になる。

問題はRepoの所有者じゃないと設定できないこと(多分)。一回forkしてそれで設定して設定ファイル落としてとかするべきか?

yumetodo commented 8 years ago

別のプロジェクトであれだけど https://ci.appveyor.com/project/yumetodo/shioi こんな感じにできる。

実行テストもbatかPS書けば走らせられる。

yumetodo commented 8 years ago

Bitbucketの方は管理者私だから試してみたけど、そもそもDxLibのDLをどうすりゃ自動化できるんだ?DLページから正規表現で抜くしか無いのか?

Nagarei commented 8 years ago

DxLibって自己解凍exeで配布なんだよな・・・、Cl上で解凍できるのかな

7zipのコマンドラインを使えば恐らく可能かと。

soukouki commented 8 years ago

毎回ダウンロードしてたらあっち側のサーバーの負担になりそう。

soukouki commented 8 years ago

ダウンロードして解凍するスクリプト wget "http://dxlib.o.oo7.jp/DxLib/DxLib_VC3_16b.exe" -outfile "DxLib_VC3_16b.exe" ./DxLib_VC3_16b.exe

yumetodo commented 8 years ago

@soukouki それだとバージョン変わるたびに書き換えないといけないと思うんです というわけでちゃんと最新版使うスクリプト書いて実行したところ、 https://ci.appveyor.com/project/yumetodo/dxlibex/build/1.0.1 ビルドに使うsln指定し忘れてたがな・・・

soukouki commented 8 years ago

なるほど。

yumetodo commented 8 years ago

何なんだろ、昨日からCLかけるとビルド始まる前にタイムアウトする・・・ https://ci.appveyor.com/project/yumetodo/dxlibex

yumetodo commented 8 years ago

https://github.com/appveyor/ci/issues/809

で、Set-Cultureええぞ、と言われたのに

https://ci.appveyor.com/project/yumetodo/dxlibex/build/1.0.27

仕事していない悲しみ。ただやっとCL動かせたので嬉しい。

soukouki commented 8 years ago

動かせたのなら一応仕事はしてるんじゃ(ビルドを開始するとこまで)。 そこまでじゃ足りないけど。

yumetodo commented 8 years ago

動かせたのなら一応仕事はしてるんじゃ。

c:\projects\dxlibex\samples\calc_coordinate\calc_coordinate\calc_coordinate.cpp(62): warning C4566: character represented by universal-character-name '\u306E' cannot be represented in the current code page (1252) [C:\projects\dxlibex\samples\calc_coordinate\calc_coordinate\calc_coordinate.vcxproj]

仕事してないです。

足りないけど。

その前にテストをあまり書いていないという問題が。

yumetodo commented 8 years ago

https://ci.appveyor.com/project/yumetodo/dxlibex/build/1.0.33

なんでうまく行ったのかわからないけどやっとCLが動いたっぽい。何もいじってないのに動くようになるってどういう

soukouki commented 8 years ago

バグが直されたとか。 サーバーの調子が悪かったとか。

yumetodo commented 8 years ago

https://ci.appveyor.com/project/yumetodo/dxlibex/build/1.0.34

やっぱり安定しない

yumetodo commented 8 years ago

あれ、

Set-WinSystemLocale ja-JP
Restart-Computer

が走っていないけどエラーなく動いた・・・?

https://ci.appveyor.com/project/yumetodo/dxlibex/build/1.0.43

yumetodo commented 8 years ago

ところでこれ、DxLibのバージョンが上がって、それを検知はできて、ダウンロードまでしているけど、キャッシュが効いているせいでバージョンアップされとらんな・・・。 DxLib.txtを正規表現で抜いてバージョンみるスクリプト書かなあかんな、これ。

yumetodo commented 8 years ago

49回に1回しか

Set-WinSystemLocale ja-JP
Restart-Computer

が成功しないのでは話にならない。もうAppveyorでlocale変更するのは諦めて、Unicode String Literalをソースコード中で使う方向で対応するべき。つまりwchar_t。ただしmingwで動かないので#ifdefするしかあるまい・・・orz ビルド通すだけならwarning C4566を無効化するのもありだけれど、このあとテストコード書くことを考えると、sampleはともかくtest codeでそれはまずかろう。

とりあえずビルドスクリプトは修正しました。 https://gist.github.com/yumetodo/a003979d2aa1046a764ad619b5540bb9 Appveyorだと[System.Console]::Writeを使わせてくれなかったり、ディレクトリ構成が微妙に違うのでこれそのままは使っていませんが。

Build status

yumetodo commented 8 years ago

まあとにかくこれでDxLib使う部分も(文字コードに気をつければ)書けるようになった。テストはVSのテスト使うほうがよさそう。一応AppveyorのC:\Libraries\boostとかC:\Libraries\boost_1_60_0にboostはあるけど、VSのテストなら何もせずとも勝手に実行してくれるっぽいので。 @soukouki @Nagarei

yumetodo commented 8 years ago

一応install script http://pastebin.com/a1FUrfMK