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

Windows向けのCIビルド環境の整備 #6

Open
1 of 2 tasks
altrive opened this issue Apr 19, 2017 · 1 comment
Open
1 of 2 tasks

Windows向けのCIビルド環境の整備 #6

altrive opened this issue Apr 19, 2017 · 1 comment

Comments

@altrive
Copy link
Owner

altrive commented Apr 19, 2017

AppVeyerを使用し、Windows向けのCIビルド環境を用意する。

TODO

  • AppVeyer環境のセットアップ
  • SQL Server利用時のDBマイグレーションテスト追加

その他

既存のTravis CI 上でも、SQL Server on Linux のDockerイメージを利用したテストを行いたいが
現時点で試した方の記載をみる限り、実行タイムアウト等の問題があるらしいので対応は保留。

@altrive
Copy link
Owner Author

altrive commented Apr 25, 2017

AppVeyor用のCIビルドは動作確認済み。

以下、作業内容メモ

AppVeyor上でDBマイグレーション時にwindowsProcessId 取得失敗に起因するエラーが発生する問題

テスト実行時のJVMのオプションに"jna.nosys=true"を追加することで解決
環境にインストール済のJNIのバージョン競合を起こすことが原因らしい
<https://github.com/java-native-access/jna/issues/384>

Embedded版のPostgresが管理者モードで起動できない問題。  

AppVeyor上では規定でUACが無効になっており、昇格済みの状態でコマンドが実行される。
このため、Postgres側のポリシーにより、コマンド実行がブロックされる。

この問題を回避するのは難しそうなためEmbeddedのDB利用をあきらめ、AppVeyor側でインストール済みのサービスを利用する方針に変更。また、この対応によりテストコード側で一部修正が必要となった。

EmbeddedのDB利用時に試したこと

  • UACの有効化/Administratorsグループから外す
    → 要OS再起動のためNG
  • runas /trustlevel:0x20000
    → そのまま使用した場合、実行時の権限が不足するため、追加の権限設定が必要。
    → stdoutのリダイレクトが必要となり、スクリプトが複雑化
  • テスト実行用のアカウントを別途作成してrunasで実行
    → stdoutのリダイレクトが必要となり、スクリプトが複雑化
    → 各種ディスクキャッシュがユーザー毎に別になる問題

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

No branches or pull requests

1 participant