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でCIをつくる #68

Open
yumetodo opened this issue May 12, 2016 · 19 comments
Open

appveyorでCIをつくる #68

yumetodo opened this issue May 12, 2016 · 19 comments
Labels

Comments

@yumetodo
Copy link
Collaborator

yumetodo commented May 12, 2016

Build status
#36 #67 より

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

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

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

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

@yumetodo
Copy link
Collaborator Author

yumetodo commented May 12, 2016

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

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

@yumetodo
Copy link
Collaborator Author

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

@Nagarei
Copy link
Owner

Nagarei commented May 12, 2016

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

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

@soukouki
Copy link
Contributor

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

@soukouki
Copy link
Contributor

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

@yumetodo
Copy link
Collaborator Author

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

@soukouki
Copy link
Contributor

なるほど。

@yumetodo
Copy link
Collaborator Author

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

@yumetodo
Copy link
Collaborator Author

yumetodo commented May 18, 2016

appveyor/ci#809

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

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

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

@soukouki
Copy link
Contributor

soukouki commented May 18, 2016

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

@yumetodo
Copy link
Collaborator Author

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

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
Copy link
Collaborator Author

yumetodo commented Jun 3, 2016

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

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

@soukouki
Copy link
Contributor

soukouki commented Jun 3, 2016

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

@yumetodo
Copy link
Collaborator Author

yumetodo commented Jun 3, 2016

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

やっぱり安定しない

@yumetodo yumetodo changed the title appveyorでCLをつくる appveyorでCIをつくる Aug 5, 2016
@yumetodo yumetodo added the CI label Aug 8, 2016
@yumetodo
Copy link
Collaborator Author

あれ、

Set-WinSystemLocale ja-JP
Restart-Computer

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

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

@yumetodo
Copy link
Collaborator Author

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

@yumetodo
Copy link
Collaborator Author

yumetodo commented Sep 27, 2016

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
Copy link
Collaborator Author

yumetodo commented Sep 27, 2016

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

@yumetodo
Copy link
Collaborator Author

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

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
Projects
None yet
Development

No branches or pull requests

3 participants