Rails 프로젝트에 CircleCI를 도입했지만 Gem 캐시가 작동하지 않을 때의 대응 방법

3573 단어 CircleCIRails
Rails 프로젝트에서 사용하는 CICD 툴로서 CircleCI를 도입 · 문서

▼캐시가 효과가 없고, 매회 bundle install 를 하고 있는 것 같은 움직임


▶︎ 이 시점의 작업 로그
▶︎ 이 시점의 설정 파일

다음은 CircleCI에서 bundle install의 캐시가 작동하지 않을 때의 해결 방법입니다.

해결 방법
  • bundle config set --local path 명령으로 Gem 설치 위치 지정
  • 이전 캐시를 사용하지 않도록 구성 파일을 다시 씁니다

  • 아래를 bundle install 앞에 추가하여 대응하였습니다.
    command: bundle config set --local path 'vendor/bundle'
    

    Github 하지만 볼 수 있도록 하고 있습니다.
  • 캐시 대상을 vender/bundle로 지정하지만 거기에 Gem을 찾을 수 없으며 매번 설치가 실행됩니다 (캐시가 유효하지 않음).
  • bundle install 명령은 Gem을 전역으로 설치하고 프로젝트 로컬에 Gem을 설치하려면 --path
    위에서 CircleCI에 캐시가 있는지 확인하기 위해 갈 곳 vender/bundle 에 Gem들이 설치되도록 bundle config set --local path 'vendor/bundle'를 추가한다.

    지금까지의 대응으로 캐쉬는 효과가 있을까라고 생각했습니다만, 효과가 없었습니다. 이유로서는, CircleCI 쪽으로 「 すでにキャッシュファイルあるので、キャッシュ保存スキップしますわ 」가 되어 버리니까.

    ▼캐시 보존이 스킵되는 모습


    ▶︎ 이 시점의 CircleCI 로그

    캐시 저장이 실행되도록, 지금까지의 캐시를 사용하지 않도록 설정 파일을 재기록하는 대응을 했습니다.

    ▼수정 개소

    p
    ▶︎ 이 시점의 커밋

    이상의 대응을 실시한 결과, 캐쉬는 제대로 효과가 되었습니다.

    ▼캐시가 효과가 있는 모습


    ▶︎ 이 시점의 CircleCI 로그

    참고
  • Clear project dependency cache
  • bundle install시에 --path vendor/bundle을 붙일 필요성은 정말로 있는지, 다시 한번 잘 생각해 보자
  • 좋은 웹페이지 즐겨찾기