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