- path: 저장하고 불러올 캐시 대상 폴더
- key: 저장 하고 불러올 때 식별할 수 있는 키 값
- restore-keys(optional): 캐시 key가 일치하는 것이 없을때, 차선택으로 캐싱 폴더를 찾는 key
- 이미 캐싱이 된 key 값이 존재하면 해당 폴더를 path 폴더에 불러옵니다.
- 만약 캐싱이 된 key가 없다면 다음과 같은 작업을 수행합니다.
- restore-keys가 존재하면 순서대로 restore-key와
match되는 key 값을 찾습니다. - 일치하는 key값이 있다면 path 폴더에 불러옵니다.
- 만약 여기서도 일치하는 key가 없다면 종료하고 다음 단계를 수행합니다.
- 해당 job을 성공적으로 마치면, path 폴더에 key 값을 부여하고 캐싱 후 저장합니다.
path: node_modules: node_modules 폴더를 캐싱합니다.
key: ${{ runner.OS }}-build-${{ hashFiles('**/package-lock.json') }}:runner.OS는 가상환경을 의미하며 여기서는 "Linux"를 의미합니다.hashFiles('**/package-lock.json')는 package-lock.json 파일을 해시화한다는 것인데, 이는 같은 의존성 파일이면 같은 해시값이 나오게 되어 새로운 key를 만들지 않습니다. 하지만 새로운 모듈이 추가되면 lock 파일도 변경이 일어나고, 이어서 해시값도 바뀌므로 key도 변경이 되어 새롭게 캐싱을 하게 되는 것입니다.
restore-keys: | ${{ runner.OS }}-build- ${{ runner.OS }}-: 만약 key값이 없으면 그 이전에 캐시했던 폴더중 가장 최근의 key값을 가져와 불러옵니다.
[Github Action] React 빌드하기
오늘은 React 프로젝트의 의존 파일(node_modules)들을 다운받아 build 하는 과정을 알아보겠습니다. React 프로젝트는 기본적으로 spa(single page application)이기 때문에, 한 페이지 내에 js 스크립트들을 불러와 화면을 구축하는 방식입니다. npm run build를 하면 정적 파일들로 구축을 해주기 때문에 build 폴더 안에 있는 index.html을 실행하면 우리의 홈페이지를 볼 수 있습니다.
https://velog.io/@loakick/Github-Action-React-%EB%B9%8C%EB%93%9C%ED%95%98%EA%B8%B0
![[Github Action] React 빌드하기](https://www.notion.so/image/https%3A%2F%2Fimages.velog.io%2Fpost-images%2Floakick%2F6ff5d720-0836-11ea-a72c-bb9d7914a5c3%2F-2019-11-16-11.10.55.png?table=block&id=0780a001-018b-4720-b5cd-a86c542dda70&cache=v2)

Seonglae Cho