관리 메뉴

A seeker after truth

CI, github actions에 대해 알게 된 것 총정리 ing 본문

BE, Infra, DevOps

CI, github actions에 대해 알게 된 것 총정리 ing

dr.meteor 2024. 3. 31. 08:41

CI는 리눅스 등 로컬 OS 환경에서 뭘 할 수 없을 때, 검사하고 싶은 타 OS 에서 뭘 하고 싶은지 CLI 명령어 기반으로 정의 내리고 시키는 일이라고 생각한다.

 

대표적 툴인 github actions 의 문법이 공식 문서에 정리돼있다: https://docs.github.com/en/actions/using-workflows

검사 속도를 빠르게 하는 캐싱에 관한 건 여기 정리돼있고 https://docs.github.com/en/actions/using-workflows/caching-dependencies-to-speed-up-workflows

 

최종 프로젝트 환경 구성에선 이 레포에 나오는 내용을 참고해 설정했다: https://github.com/actions/cache

또 feature/** 브랜치에 push가 생길 때마다, develop 브랜치에 PR 생길 때마다 CI 트리거를 하고 싶어 문법을 찾아봤는데, 아래와 같이 하면 끝난다... 출처는 https://github.com/actions/cache

 

또 주의사항으로, 처음 workflow 구동 시 루트 폴더에 대해 동일한 하위폴더 명으로 들어가 실행 경로를 잡아 버린다. 보통 장고에서 레포 네이밍을 이런 식으로 많이 하기 때문이겠지

 

그래서 이름을 서로 다르게 잡아놨다면, python manage.py test 명령 전에 폴더를옮기는 작업 먼저 해주어야 한다. yml 파일에 반영한 모습은 아래와 같다.

 

그리고 깃헙액션도 컨텍스트 변수가 있고, 다음과 같은 값들을 지니고 있다. 어떤 정보에 접근하고 활용할 수 있는지 알 수 있다: https://velog.io/@excellent/Github-Action-Context