go modules 및 Circle CI 캐시를 사용하여 빌드 및 테스트 가속화
7891 단어 5CircleCICircleCI2.0
github는 여기 : htps : // 기주 b. 코 m / 어쨌든 / 시 rc ぇ
go modules
go modules에 대한 자세한 내용은:
있습니다. 복잡한 설명이라면 패키지를 관리하는 도구입니다.
go.mod
와 go.sum
의 2 개의 파일로 구성되어 있어 각각, modules 와, modules 의 샘이 쓰여져 있습니다. go modules를 이용해 두면, 어떤 환경에서도 같은 바이너리를 빼내는 것이 우리라고 생각합니다.올해 여름까지는
export GO111MODULE=on
로 환경 변수를 설정해 둡시다.go modules 캐시
go mod download
그러면 go.mod 등에 작성된 종속 패키지가
$GOPATH/pkg/mod/
에 캐시됩니다. 이 디렉토리를 Circle CI save_cache
에 지정하면 좋을 것 같습니다.예:
version: 2
defaults: &defaults
jobs:
setup-build:
docker:
- image: golang:stretch
working_directory: /workspace
environment:
GOPATH: /
GOCACHE: /.cache/go-build
GO111MODULE: "on"
steps:
- run: go env
- checkout
- restore_cache:
keys:
- go-module-cache-v1-{{ checksum "/workspace/go.sum" }}
- go-module-cache-v1-
- run: go mod download
- save_cache:
key: go-module-cache-v1-{{ checksum "/workspace/go.sum" }}
paths:
- /pkg/mod/cache
- save_cache:
key: workspace-v1-{{ .Environment.CIRCLE_SHA1 }}
paths:
- /workspace
go modules를 이용하고 있으므로,
working_directory
를 좋아하는 곳에 할 수 있습니다.restore_cache
go-module-cache-v1-{{ checksum "/workspace/go.sum" }}
에서 go.sum
의 체크섬을 가지고 이미 캐시 된 것을 채택합니다.go-module-cache-v1-
그래서 지금까지 캐시 한 것을 채용합니다.체크섬 캐시가 없으면 최신 캐시에서 당기므로 순서대로 쓰면 좋을 것 같습니다.
go test 결과 캐싱
Go의 테스트는 한 번 실행한 결과를 캐싱하는 기능이 있으므로 이를 캐싱해 보겠습니다.
test:
docker:
- image: golang:stretch
working_directory: /workspace
environment:
GOPATH: /
GOCACHE: /.cache/go-build
GO111MODULE: "on"
steps:
- restore_cache:
keys:
- workspace-v1-{{ .Environment.CIRCLE_SHA1 }}
- restore_cache:
keys:
- go-module-cache-v1-{{ checksum "/workspace/go.sum" }}
- go-module-cache-v1-
- restore_cache:
keys:
- go-build-cache-v1-{{ .Branch }}-{{ .Revision }}
- go-build-cache-v1-{{ .Branch }}
- go-build-cache-v1
- run: go test -v ./...
- save_cache:
key: go-build-cache-v1-{{ .Branch }}-{{ .Revision }}
paths:
- /.cache/go-build
테스트를 실행하기 전에
setup-build
에서 캐시한 workspace와 go modules 캐시를 복원합니다.테스트 결과는
GOCACHE
로 지정한 장소에 있으므로, 그 디렉토리 마다 캐쉬 해 두는 것이 좋다.워크플로 만들기
workflows:
version: 2
test:
jobs:
- setup-build
- test:
requires:
- setup-build
오시마
완성품은 이쪽. .circleci/config.yml
자료
Reference
이 문제에 관하여(go modules 및 Circle CI 캐시를 사용하여 빌드 및 테스트 가속화), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다 https://qiita.com/atotto/items/b68ef6e9274a52f25057텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념 (Collection and Share based on the CC Protocol.)