Travis에서 테스트를 사전에 로컬로 시도
개요
GitHub 등에서 호스팅하는 프로젝트의 테스트에 Travis CI 등의 클라우드 CI 서비스를 이용하는 경우는 많을 것이다.
기본적으로 로컬 개발 환경에서 테스트를 통과했는지 확인한 후 커밋하고 푸시해야하므로 Travis에서도 테스트를 통과해야합니다. 그러나 Travis 구성 파일 .travis.yml
의 실수와 종속 라이브러리의 추가를 잊어 버리는 등의 실수로 테스트가 실패합니다. 특히 종속 라이브러리의 경우 개발 환경에서 가끔 설치되면 로컬 테스트가 통과되기 때문에 간과 할 수 있습니다.
테스트가 실패하면 로컬 환경에서 수정 후 다시 푸시되어 원격 브랜치의 커밋 이력이 더러워지므로 실수는 가능한 한 피해야 한다(특히, 다른 사람의 리포지토리로 하면 어색하다). 따라서 Python 또는 Go 언어 프로젝트를 위해 도커을 사용하여 로컬 환경을 마련하고 .travis.yml
에 설명 된대로 테스트를 실행하는 도구 Loci를 만들었습니다.
데모
설치
먼저 도커이 필요하기 때문에 미리 설치해 둔다(Docker의 도입 방법에 대해서는 생략한다).
Loci 설치는 5이 설치된 환경이면,
$ go get github.com/jkawamoto/loci
Homebrew가 설치된 환경이면,
$ brew tap jkawamoto/loci
$ brew install loci
에서 할 수 있다. 그렇지 않으면 GitHub에 컴파일된 바이너리이 있으므로 다운로드하여 경로를 통과 한 곳에 두면 됩니다.
사용법
현재 디렉토리에 .travis.yml
가 있으면 loci
명령을 실행하면됩니다. 다른 파일을 테스트하려면 loci <filepath>
와 파일 경로를 전달하십시오.
Loci는 현재 디렉토리 아래에 포함 된 파일을 가지며 .travis.yml
에 설명 된 패키지가 설치된 컨테이너 이미지를 만듭니다. 원본 이미지는 ubuntu:latest
입니다. 처음 실행할 때는 패키지 설치 등 어느 정도의 시간이 필요하지만, 2번째 이후에는 의존 패키지에 변경이 없으면 과거의 컨테이너 이미지를 적절히 재이용한다(Docker의 기능).
APT 캐시 서버 또는 PyPI 캐시 서버를 준비하는 경우 --apt-proxy
또는 --pypi-proxy
플래그를 사용하여이를 사용합니다. (참고: QNAP에 Apt 캐시 서버 구축 , QNAP에 Pypi 캐시 서버 구축 )
모든 명령 옵션은 다음과 같습니다.
loci [global options] [script file]
If script file isn't given, .travis.yml will be used.
GLOBAL OPTIONS:
--name NAME, -n NAME creating a container named NAME to run tests,
and that container will not be deleted.
--tag TAG, -t TAG creating an image named TAG.
--base TAG, -b TAG use image TAG as the base image.
(default: "ubuntu:latest")
--verbose verbose mode, which prints Dockerfile and
entrypoint.sh.
--apt-proxy URL URL for a proxy server of apt repository.
[$APT_PROXY]
--pypi-proxy URL URL for a proxy server of pypi repository.
[$PYPI_PROXY]
--http-proxy URL URL for a http proxy server. [$HTTP_PROXY]
--https-proxy URL URL for a https proxy server. [$HTTPS_PROXY]
--no-proxy LIST Comma separated URL LIST for which proxies won't
be used. [$NO_PROXY]
--help, -h show help
--version, -v print the version
향후 예정
현재, Python과 Go에만 대응하고 있으므로, 수시 대응 언어를 늘릴 예정.
Reference
이 문제에 관하여(Travis에서 테스트를 사전에 로컬로 시도), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다
https://qiita.com/jkawamoto/items/a409dd9cd6e63034aa28
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념
(Collection and Share based on the CC Protocol.)
먼저 도커이 필요하기 때문에 미리 설치해 둔다(Docker의 도입 방법에 대해서는 생략한다).
Loci 설치는 5이 설치된 환경이면,
$ go get github.com/jkawamoto/loci
Homebrew가 설치된 환경이면,
$ brew tap jkawamoto/loci
$ brew install loci
에서 할 수 있다. 그렇지 않으면 GitHub에 컴파일된 바이너리이 있으므로 다운로드하여 경로를 통과 한 곳에 두면 됩니다.
사용법
현재 디렉토리에 .travis.yml
가 있으면 loci
명령을 실행하면됩니다. 다른 파일을 테스트하려면 loci <filepath>
와 파일 경로를 전달하십시오.
Loci는 현재 디렉토리 아래에 포함 된 파일을 가지며 .travis.yml
에 설명 된 패키지가 설치된 컨테이너 이미지를 만듭니다. 원본 이미지는 ubuntu:latest
입니다. 처음 실행할 때는 패키지 설치 등 어느 정도의 시간이 필요하지만, 2번째 이후에는 의존 패키지에 변경이 없으면 과거의 컨테이너 이미지를 적절히 재이용한다(Docker의 기능).
APT 캐시 서버 또는 PyPI 캐시 서버를 준비하는 경우 --apt-proxy
또는 --pypi-proxy
플래그를 사용하여이를 사용합니다. (참고: QNAP에 Apt 캐시 서버 구축 , QNAP에 Pypi 캐시 서버 구축 )
모든 명령 옵션은 다음과 같습니다.
loci [global options] [script file]
If script file isn't given, .travis.yml will be used.
GLOBAL OPTIONS:
--name NAME, -n NAME creating a container named NAME to run tests,
and that container will not be deleted.
--tag TAG, -t TAG creating an image named TAG.
--base TAG, -b TAG use image TAG as the base image.
(default: "ubuntu:latest")
--verbose verbose mode, which prints Dockerfile and
entrypoint.sh.
--apt-proxy URL URL for a proxy server of apt repository.
[$APT_PROXY]
--pypi-proxy URL URL for a proxy server of pypi repository.
[$PYPI_PROXY]
--http-proxy URL URL for a http proxy server. [$HTTP_PROXY]
--https-proxy URL URL for a https proxy server. [$HTTPS_PROXY]
--no-proxy LIST Comma separated URL LIST for which proxies won't
be used. [$NO_PROXY]
--help, -h show help
--version, -v print the version
향후 예정
현재, Python과 Go에만 대응하고 있으므로, 수시 대응 언어를 늘릴 예정.
Reference
이 문제에 관하여(Travis에서 테스트를 사전에 로컬로 시도), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다
https://qiita.com/jkawamoto/items/a409dd9cd6e63034aa28
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념
(Collection and Share based on the CC Protocol.)
loci [global options] [script file]
If script file isn't given, .travis.yml will be used.
GLOBAL OPTIONS:
--name NAME, -n NAME creating a container named NAME to run tests,
and that container will not be deleted.
--tag TAG, -t TAG creating an image named TAG.
--base TAG, -b TAG use image TAG as the base image.
(default: "ubuntu:latest")
--verbose verbose mode, which prints Dockerfile and
entrypoint.sh.
--apt-proxy URL URL for a proxy server of apt repository.
[$APT_PROXY]
--pypi-proxy URL URL for a proxy server of pypi repository.
[$PYPI_PROXY]
--http-proxy URL URL for a http proxy server. [$HTTP_PROXY]
--https-proxy URL URL for a https proxy server. [$HTTPS_PROXY]
--no-proxy LIST Comma separated URL LIST for which proxies won't
be used. [$NO_PROXY]
--help, -h show help
--version, -v print the version
현재, Python과 Go에만 대응하고 있으므로, 수시 대응 언어를 늘릴 예정.
Reference
이 문제에 관하여(Travis에서 테스트를 사전에 로컬로 시도), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다 https://qiita.com/jkawamoto/items/a409dd9cd6e63034aa28텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념 (Collection and Share based on the CC Protocol.)