2016-07-20 3 views
0

나는 Golang 프로젝트를 개발 중이며 TravisCI를 사용하고 있습니다. 의존 도구로서 Godeps가 사용됩니다.travis-ci에서 golang 프로젝트 빌드를 관리하는 방법

git push로 테스트를 실행 한 결과 아래와 같은 오류가 발생했습니다.

# command-line-arguments 
cmd/proj/main_test.go:6:2: cannot find package 
"command-line-/vendor/github.com/xxxxx/xxxxx/abc" in any of: 
/home/travis/.gimme/versions/go1.6.linux.amd64/src/command-line-/vendor/github.com/xxxxx/xxxxx/xxx 

왜 패키지를 찾을 수 없습니까? 빌드 로그로서 go get 명령으로 제대로 작동하는 것 같습니다.

내 travis.yml은 여기에 있습니다.

language: go 
sudo: false 
go: 
    - 1.6 
    - tip 

services: 
    - redis-server 

env: 
    global: 
    - secure: "xxxxx" 

script: 
    - go fmt ./... 
    - go vet $(go list ./... | grep -v /vendor/) 
    - go test -v cmd/xxxx/*.go -xxxx ${XXXXX} 

before_install: 
    - go get github.com/tools/godep 

branches: 
    only: 
    - master 

이동 버전의 팁은 정상입니다. 그러나 1.6 또는 1.5 버전은 제대로 작동하지 않습니다.

어떻게 그 상황을 관리 할 수 ​​있습니까?

+0

종속성을/vendor 아래의 자식에게 확인한 경우 Travis는 godep을 가져올 필요가 없습니다. 1.5의 경우 GO15VENDOREXPERIMENT 환경 변수를 1로 설정해야하지만 godep 자체는 부적합합니다. – voutasaurus

답변

1

Go 1.6에서 종속성을 관리하는 방법은 Go 1.5 및 이전 버전과 다릅니다.

1.6은 /vendor 폴더를 소개합니다. 종속성을 가져올 때마다 라이브러리가 /vendor에 있으면 라이브러리가로드됩니다.

동작은 1.5에서 도입되었지만 그 버전에서는 실험적이었습니다. 즉, GO15VENDOREXPERIMENT=1 환경 변수를 사용하여 활성화해야 함을 의미합니다.

1.5 및 1.6에 대한 지원 만 제공하면 1.5 프로젝트를 빌드 할 때 Travis에 변수를 추가하기 만하면됩니다.

1.5 이전 버전에서도 지원을 연장해야하는 경우 조금 더 복잡합니다.

+0

조언 해 주셔서 감사합니다. 버전 1.6 및 유방을 설정했지만 팁 버전이 작동 할 수 있습니다. 그러나 1.6은 불가능합니다. 그리고 travis는 벤더 디렉토리에서 패키지를 찾는다. – Harry

+0

@Harry 전체 트래비스 로그를 갖는 것이 도움이 될 것입니다. –

관련 문제