CircleCI 캐시 키에 Contexts로 정의한 환경 변수 지정

5859 단어 CircleCI
CircleCI를 빌드할 때 라이브러리 종속성을 캐시할 때 지정하는 키로 키 앞에 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를 캐시 키에 포함하는 이점



예를 들어, 고정 접두사를 캐시 키에 포함하는 패턴으로 캐시를 관리하는 경우 캐시를 지울 때 "캐시 키의 고정 접두사를 변경하고 (v1v2으로 변경하여) 커밋"과 같은 노력 발생하지만 Context를 캐시 키에 포함시키는 패턴의 경우 CircleCI 설정 화면에서 캐시를 지울 수 있다는 장점이 있습니다.

Context 설정 방법



1. Contexts 설정 화면에서 새 Context 정의



예를 들어 ORGANIZATION_CONTEXT이라는 Context를 정의합니다.



2. 정의한 Context에서 캐시 키에 대한 환경 변수 정의



예를 들어, NameCACHE_KEY, Valuehoghoge이라는 환경 변수를 정의합니다.



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. 캐시 키에 대한 환경 변수 정의



이전 캐시 키와는 다른 NameCACHE_KEY, Valuefugafuga이라는 환경 변수를 정의합니다.


3. CircleCI로 빌드하면 캐시 키에서 새 CACHE_KEY 환경 변수가 확장됩니다.


fugafuga이라는 환경 변수가 확장되었습니다.

좋은 웹페이지 즐겨찾기