워크플로 종속성 캐싱 정보
워크플로 실행은 한 실행에서 다른 실행으로 동일한 출력 또는 다운로드된 종속성을 다시 사용하는 경우가 많습니다. 예를 들어 Maven, Gradle, npm 및 Yarn과 같은 패키지 및 종속성 관리 도구는 다운로드한 종속성의 로컬 캐시를 유지합니다.
GitHub호스팅된 실행기의 작업은 클린 러너 이미지에서 시작하여 매번 종속성을 다운로드해야 하므로 네트워크 사용률이 증가하고 런타임이 길어지고 비용이 증가합니다. 종속성 GitHub 같은 파일을 다시 만드는 데 걸리는 시간을 단축하기 위해 워크플로에서 자주 사용하는 파일을 캐시할 수 있습니다.
참고
자체 호스팅 실행기를 사용하는 경우 워크플로 실행의 캐시는 소유 클라우드 스토리지에 GitHub저장됩니다. 고객 소유 스토리지 솔루션은 GitHub Enterprise Server를 통해서만 사용할 수 있습니다.
아티팩트 대 종속성 캐싱
아티팩트 및 캐싱은 GitHub에 파일을 저장할 수 있는 기능을 제공하지만 각 기능은 서로 다른 사용 사례를 제공하므로 서로 바꿔서 사용할 수 없습니다.
- 패키지 관리 시스템의 빌드 종속성 등 작업 또는 워크플로 실행 간에 자주 변경되지 않는 파일을 다시 사용하려는 경우 캐싱을 사용합니다.
- 빌드된 이진 파일 또는 빌드 로그와 같이 워크플로 실행이 종료된 후 볼 작업에서 생성된 파일을 저장하려는 경우 아티팩트를 사용합니다.
워크플로 실행 아티팩트에 대한 자세한 내용은 워크플로 아티팩트와 데이터 저장 및 공유을(를) 참조하세요.
캐시 보안
캐시는 워크플로 또는 작업의 ID가 아니라 워크플로 실행에서 사용하는 분기 또는 태그를 기반으로 공유됩니다. 다양한 워크플로 트리거에 사용되는 브랜치에 대해서는 워크플로를 트리거하는 이벤트 및 GITHUB_REF을(를) 참조하세요. 캐시를 읽을 수 있는 실행은 as-is콘텐츠를 복원하므로 복원된 파일을 신뢰할 수 없는 입력으로 처리하고 캐시에 비밀 또는 기타 중요한 데이터를 저장하지 않아야 합니다.
신뢰할 수 없는 워크플로는 포크에서 캐시를 복원하는 경우 pull_request 와 같은 중요한 캐시 콘텐츠를 읽을 수 있습니다. 포이즌 캐시는 신뢰할 수 있는 워크플로에서 코드 실행으로 이어질 수 있습니다. 캐시 오염의 위험을 줄이기 위해 GitHub에서는 신뢰 수준이 낮은 트리거에 의해 실행되는 워크플로에 기본 브랜치 범위의 캐시에 대한 읽기 전용 액세스 권한을 부여합니다.
캐시 범위, 액세스 제한 및 캐시를 안전하게 사용하기 위한 모범 사례에 대한 자세한 내용은 종속성 캐싱 참조을 참조하세요.
다음 단계
워크플로에서 종속성 캐싱을 구현하려면 종속성 캐싱 참조을(를) 참조하세요.