CircleCI 캐시 키에 Contexts로 정의한 환경 변수 지정
v1
과 같은 고정 접두사를 부여하여 캐시를 관리하는 방법이 있지만 다음과 같이 Contexts에 정의되어 있습니다. 한 환경 변수를 지정하여 캐시 키를 하드 코드하지 않고 캐시 키를 관리하는 방법도 있습니다.# プレフィクスをキーに含めるパターン
- restore_cache:
keys:
- v1-bundler-cache-{{ .Branch }}-{{ checksum "Gemfile.lock" }}
- v1-bundler-cache-{{ .Branch }}
- v1-bundler-cache-
# Context をキーに含めるパターン
- restore_cache:
keys:
- bundler-cache-{{ .Environment.CACHE_KEY }}-{{ .Branch }}-{{ checksum "Gemfile.lock" }}
- bundler-cache-{{ .Environment.CACHE_KEY }}-{{ .Branch }}
- bundler-cache-
Context를 캐시 키에 포함하는 이점
예를 들어, 고정 접두사를 캐시 키에 포함하는 패턴으로 캐시를 관리하는 경우 캐시를 지울 때 "캐시 키의 고정 접두사를 변경하고 (
v1
을 v2
으로 변경하여) 커밋"과 같은 노력 발생하지만 Context를 캐시 키에 포함시키는 패턴의 경우 CircleCI 설정 화면에서 캐시를 지울 수 있다는 장점이 있습니다.Context 설정 방법
1. Contexts 설정 화면에서 새 Context 정의
예를 들어
ORGANIZATION_CONTEXT
이라는 Context를 정의합니다.2. 정의한 Context에서 캐시 키에 대한 환경 변수 정의
예를 들어,
Name
에 CACHE_KEY
, Value
에 hoghoge
이라는 환경 변수를 정의합니다.3. CircleCI 구성 파일 ( .circleci/config.yml )의 캐시 키로 (2)에 정의 된 환경 변수를 지정합니다.
.circleci/config.yml
설명 예제test:
executor:
name: default
steps:
- checkout
- restore_cache:
keys:
- bundler-cache-{{ .Environment.CACHE_KEY }}-{{ .Branch }}-{{ checksum "Gemfile.lock" }}
- bundler-cache-{{ .Environment.CACHE_KEY }}-{{ .Branch }}
- bundler-cache-
- run:
name: bundle install
command: bundle install --path vendor/bundle
- save_cache:
key: bundler-cache-{{ .Environment.CACHE_KEY }}-{{ .Branch }}-{{ checksum "Gemfile.lock" }}
paths:
- ./vendor/bundle
workflows:
test-workflow:
jobs:
- test:
context: ORGANIZATION_CONTEXT # (1) で定義した Context を test ジョブの中で展開する
4. CircleCI로 빌드하면 캐시 키에 CACHE_KEY 환경 변수가 확장됩니다.
hogehoge
이라는 환경 변수가 확장되었습니다.캐시를 지우는 방법
1. 캐시 키에 대한 환경 변수 삭제
2. 캐시 키에 대한 환경 변수 정의
이전 캐시 키와는 다른
Name
에 CACHE_KEY
, Value
에 fugafuga
이라는 환경 변수를 정의합니다.3. CircleCI로 빌드하면 캐시 키에서 새 CACHE_KEY 환경 변수가 확장됩니다.
fugafuga
이라는 환경 변수가 확장되었습니다.Reference
이 문제에 관하여(CircleCI 캐시 키에 Contexts로 정의한 환경 변수 지정), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다 https://qiita.com/penta515/items/57a6e7bf48c722c14595텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념 (Collection and Share based on the CC Protocol.)