私はいくつかの最適化ツールを含むオープンソースプロジェクトを開発しています。プロジェクトをgithubにアップロードしました。誰かがプルリクエストを送信するたびにテストスイートを自動的に実行したいと思います。これまで私はtravis-ciの使用を計画していました。問題は、テストスイートがサードパーティソルバー(IBM cplex)に依存していることです。travis CIのサードパーティ依存関係
をダウンロードしてソルバーのインストールIBM CPLEXを
私の地元の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
- ソルバーのネイティブライブラリを指すようにLD_LIBRARY_PATH変数を設定します。
export LD_LIBRARY_PATH=/opt/ILOG/CPLEX_Studio1261/cplex/bin/x86-64_linux/:$LD_LIBRARY_PATH
- テストスイートをコンパイル/実行します。
問題:
- CPLEXはオープンソースではありません。私はgithubリポジトリにアップロードしたくありません。さらに、その開梱されたサイズはかなり大きいです(1GB)。
travis-ciに必要なソルバーファイルを一般公開せずにアップロードする方法はありますか? Thisスタックオーバーフローに関する質問は、私がcplex.jarをtravisにどのようにして得ることができるのかを説明していますが、私はいくつかのWebサーバー上にjarファイルを置いて、.travis.ymlファイルにはっきりと読むことができるリンクを追加しなければなりません。
もし私がcplex.jarをtravisに取り込むことができたとしても、どうすればそのネイティブライブラリも手に入れることができますか?そのサイズはかなり大きいので、ビルドを実行するたびにこれらのライブラリをダウンロードしなければならない場合は望ましくありません。さらに、これらのライブラリをtravisテストシステム以外の誰でも利用できるようにしたくありません。
上記が不可能であることが判明した場合。プライベートサーバ上で実行できる別のCIシステムがありますか?プッシュリクエストがgithubを通じて送信されるたびに実行できますか?