간단한 동아리 프로젝트를 하면서 pull request merge받기 전 작동을 하는지 간단하게 테스트 하고 싶어서 만들어 봤습니다. 간단하게 하나씩 보겠습니다. dev branch에서 작업을 진행했기 때문에 dev에 pull request 이벤트가 들어오면 실행되도록 했습니다. 가상 머신은 우분투이고 먼저 해당 브랜치로 checkout합니다. 그리고 파이썬 환경을 만들어줍니다. 프로젝트 환경은 pipenv에서 가상환경을 만들어 진행했기 때문에 pipenv를 설치해줍니다. github action을 할 때마다 새로운 가상머신이 생성되기 때문에 시간을 덜 들이기 위해 캐싱이 필요합니다. pipenv는 아래처럼 캐싱할 수 있습니다. 그리고 cache-hit가 아닐때만 새로 가상환경을 설치해줍니다. 그 다음에 서버와 DB를 위한 환경 변수를 설정해줍니다. db는 docker로 열어놨기 때문에 docker compose up -d를 통해 열어주고 pytest를 진행하도록 했습