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.)