2016-07-01 2 views
0

많은 최적화 도구가 포함 된 오픈 소스 프로젝트를 개발 중입니다. 프로젝트를 github에 업로드했는데 누군가가 pull 요청을 제출할 때마다 테스트 스위트를 자동으로 실행하고 싶습니다. 이 연장을 위해 저는 travis-ci를 사용할 계획이었습니다. 문제는 테스트 스위트가 타사 솔버 (IBM cplex)에 의존한다는 것입니다.travis CI의 제 3 자 의존성

  1. 다운로드 및 솔버 설치 IBM CPLEX를

  2. 내 로컬 메이븐 저장소에 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에 필요한 solver 파일을 공개하지 않고 업로드하는 방법이 있습니까? This 스택 오버플로 질문은 내 cplex.jar을 travis로 가져 오는 방법을 설명하지만 일부 웹 서버에 jar 파일을 넣고 .travis.yml 파일에 명확하게 읽을 수있는 링크를 추가해야한다고 말할 수 있습니다.

travis에 cplex.jar을 가져올지라도 기본 라이브러리를 어떻게 얻을 수 있습니까? 그들의 크기가 상당히 크므로 트래비스가 빌드를 수행 할 때마다이 라이브러리를 다운로드해야하는 것은 바람직하지 않습니다. 또한, 나는이 라이브러리를 트래비스 테스트 시스템을 제외한 다른 누구에게나 사용 가능하게하고 싶지 않습니다.

위의 사항을 알 수없는 경우. 사설 서버에서 실행할 수있는 다른 CI 시스템이 있습니까?이를 수행 할 수 있고 풀 요청이 github을 통해 제출 될 때마다 실행될 수 있습니까?

답변

0

트래비스 file encryption을 참조하십시오. 그래도 암호화 된 cplex.jar을 git 저장소에 추가해야하지만 최소한 공개되지는 않습니다. 나는 이것이 당신의 유형의 상황에서 이상적이지 않은 이유를 알 수 있습니다.하지만 당신이 언급하지 않았기 때문에, 나는이 답을 썼습니다.

또는 cplex.jar을 자신의 서버에 저장 한 다음 encrypted environment variable에 URL을 저장할 수도 있습니다.