<aside> 💡 의존성 패키지 또는 재사용되는 파일들을 Cache하여 Workflow 속도를 올릴 수 있습니다.
</aside>
Workflow에서 의존성 패키지들을 재사용하는 경우가 많습니다. 예를 들어, Maven, Gradle, npm, yarn 같은 매니저들은 한 번 다운로드된 의존성들에 대해 로컬 캐시를 사용하곤 합니다.
하지만 Github에서 실행시키는 Workflow는 환경이 처음부터 셋업되는 경우가 많습니다. 따라서 네트워크 사용이 늘어나고, 런타임이 길어지고, 비용도 늘어납니다. 이러한 문제를 해결하기 위해 Github는 의존성 캐싱 기능을 지원합니다.
의존성들을 캐시하려면 Github의 cache
action을 사용해야합니다. 이 action은 고유키
를 이용하여 캐시를 식별하고 가져옵니다. 자세한 정보는 actions/cache
를 확인해주세요.
<aside> ❗ Public 저장소에서 Credentials이나 Token 같은 민감한 정보는 캐시하지 말아주세요. 캐시된 정보는 심지어 Fork 된 곳에서도 접근 가능하기 때문에 주의해야합니다.
</aside>
Github에 파일을 저장한다는 점에서 Artifacts와 캐싱은 비슷하지만, 쓰이는 경우를 보면 이 둘이 다르다는 것을 알 수 있습니다.
Artifact
를 사용하세요. 자세한 내용은 Persisting workflow data using artifacts에서 확인할 수 있습니다.v2
버전: GITHUB_REF
기반의 이벤트에서 트리거 된 Workflow면 cache
action에 접근할 수 있습니다.v1
버전: push
또는 pull_request
이벤트에서만 접근 가능합니다.
pull_request
closed
제외master
)의 캐시에 접근 가능합니다.master
브랜치에서 생성된 캐시는 모든 PR를 통해서 접근 가능합니다. 만약 feature-b