2016-07-01 21 views
0

私はいくつかの最適化ツールを含むオープンソースプロジェクトを開発しています。プロジェクトをgithubにアップロードしました。誰かがプルリクエストを送信するたびにテストスイートを自動的に実行したいと思います。これまで私はtravis-ciの使用を計画していました。問題は、テストスイートがサードパーティソルバー(IBM cplex)に依存していることです。travis CIのサードパーティ依存関係

  1. をダウンロードしてソルバーのインストールIBM CPLEXを

  2. 私の地元のMavenリポジトリにcplex.jarをインストールします:

    は、私は次のことを行うと、自分のコンピュータ上でローカルにテストスイートを実行するにはmvn install:install-file -DgroupId=cplex -DartifactId=cplex -Dversion=12.6.1 -Dpackaging=jar -Dfile=/opt/ILOG/CPLEX_Studio1261/cplex/lib/cplex.jar

  3. ソルバーのネイティブライブラリを指すようにLD_LIBRARY_PATH変数を設定します。export LD_LIBRARY_PATH=/opt/ILOG/CPLEX_Studio1261/cplex/bin/x86-64_linux/:$LD_LIBRARY_PATH
  4. テストスイートをコンパイル/実行します。

問題:

  • CPLEXはオープンソースではありません。私はgithubリポジトリにアップロードしたくありません。さらに、その開梱されたサイズはかなり大きいです(1GB)。

travis-ciに必要なソルバーファイルを一般公開せずにアップロードする方法はありますか? Thisスタックオーバーフローに関する質問は、私がcplex.jarをtravisにどのようにして得ることができるのかを説明していますが、私はいくつかのWebサーバー上にjarファイルを置いて、.travis.ymlファイルにはっきりと読むことができるリンクを追加しなければなりません。

もし私がcplex.jarをtravisに取り込むことができたとしても、どうすればそのネイティブライブラリも手に入れることができますか?そのサイズはかなり大きいので、ビルドを実行するたびにこれらのライブラリをダウンロードしなければならない場合は望ましくありません。さらに、これらのライブラリをtravisテストシステム以外の誰でも利用できるようにしたくありません。

上記が不可能であることが判明した場合。プライベートサーバ上で実行できる別のCIシステムがありますか?プッシュリクエストがgithubを通じて送信されるたびに実行できますか?

答えて

0

トラビスfile encryptionをご覧ください。暗号化されたにもかかわらず、暗号化されたcplex.jarをgitリポジトリに追加する必要がありますが、少なくとも公開されません。私はあなたの状況の中でこれが理想的ではない理由を知ることができますが、あなたがそれを言及しなかったので、私はこの答えをちょうどの場合に書きました。

また、自分のサーバーにcplex.jarを格納し、そのURLをencrypted environment variableに保存することもできます。

関連する問題