[groonga-dev,02978] Re: GroongaのWindows向けCIについて

Back to archive index

hiroshi hatake cosmo****@gmail*****
2014年 11月 25日 (火) 23:26:52 JST


畑ケです。

> GroongaのWindows向けのCIをどうするかの相談です。
> ...
> > ですが、Groongaのみであれば、おそらく大丈夫だろうと思い挑戦してみました。ひとまずビルドが完走したので報告です。
> > Mroongaの時と同じくAppVeyorを使っています。
>
> おぉ!AppVeyorというサービスを使えば、Windows環境でGroongaの
> ビルドチェックをできるのですね!これはとても助かりますね!
>
> > 9回目の挑戦でビルドのみは完走しました!
> > (パッケージングはmingw-w64環境で出来るのでいいかな、という感じです。)
>
> はい、パッケージのビルドは必要ないです。
> Visual C++でのビルドだとRroongaのビルドに使えないので使い勝
> 手がよくないんですよね。。。
>
> > 以下が設定です。
> > .travis.ymlのような感じで書けば大丈夫そうです。癖は有りますが…。
> > https://github.com/cosmo0920/groonga/compare/appveyor
>
> version.shはCMakeLists.txtの中でどうにかしたいところです
> ね。。。
>
> diff --git a/CMakeLists.txt b/CMakeLists.txt
> index b8fd4cb..c904fe0 100644
> --- a/CMakeLists.txt
> +++ b/CMakeLists.txt
> @@ -25,7 +25,7 @@ if(EXISTS "${CMAKE_CURRENT_SOURCE_DIR}/version.sh")
>    file(READ "${CMAKE_CURRENT_SOURCE_DIR}/version.sh" GRN_VERSION)
>  else()
>    if(NOT EXISTS "${CMAKE_CURRENT_BINARY_DIR}/version.sh")
> -    if(EXISTS "${CMAKE_CURRENT_SOURCE_DIR}/.git")
> +    if(EXISTS "${CMAKE_CURRENT_SOURCE_DIR}/.git" AND EXISTS "/bin/sh")
>        execute_process(COMMAND
> "${CMAKE_CURRENT_SOURCE_DIR}/version-gen.sh")
>        file(READ "${CMAKE_CURRENT_BINARY_DIR}/version.sh" GRN_VERSION)
>      else()
>
> とすればいけるかしら。
>

そうですね、powershell環境になるのでversion.shがそのままでは作れないので読み飛ばすか、かなり突貫な感じですが、
https://github.com/cosmo0920/groonga/blob/c56d8946163e5c28736e8f959ea66816982e4ab6/version-gen.ps1
を使ってversion.shを作っちゃう事でも何とかなります。
(上のdiffはversion-gen.ps1を作ってversion.sh
<http://version-gen.xn--ps1version-6c4igb49bm265a.sh>を無理矢理生成しています)


>
> > 以下そのジョブの結果です:
> > https://ci.appveyor.com/project/cosmo0920/groonga/build/1.0.9
>
> warningも見れていい感じですね。
>
> > ただ、AppVeyorのビルドキューが捌けるのがかなり遅いので、Groongaのmasterにマージしちゃうのは少し悩ましい所です。。
>
> 結果が見れるようになるまで時間差があるってことですよね?
> それは別にいいと思います。それよりも、どのリビジョンでビルド
> できなくなったかわかることのメリットが大きいと思います。
>
> これ、Groonga本体で利用するにはどうしたらよいのでしょうか?
>

このブログがちょろっと触れていますが、
http://posaune.hatenablog.com/entry/2014/05/02/201403

AppVeyorにログインしたらプロジェクトを生成して、
appveyor.ymlをリポジトリのrootに置くか、
AppVeyorのWebUIで設定するかでCIの設定が出来ます。
また、プロジェクト直下に有るappveyor.ymlがWebUIの設定より優先されます。
なのでappveyor.ymlが置いてあればWebUIで設定する事は特にないと思います。

(個人的にはappveyor.ymlにしてしまうのがオススメです。appveyor.yml限定の機能も有るから、という事と、AppVeyorのCIの設定をバージョン管理出来るからです。)

ひとまずAppVeyorで動くようにしてあるappveyorブランチをプルリクしてみましょうか?
その方が最初から動く設定に出来ているはずだからです。どうでしょう?



groonga-dev メーリングリストの案内
Back to archive index