Push-and-pray는 그만두자
Act(nektos/act)는 GitHub Actions 워크플로를 도커에서 로컬로 실행해 준다. CI 시간을 낭비하지 않고, Actions 탭을 'fix typo' 커밋으로 지저분하게 만들지 않으면서 워크플로 YAML을 반복 수정하고, 매트릭스를 확장해 디버깅하고, 표현식을 검증할 수 있어서 아주 유용해.
설치와 실행
brew install act # 또는: gh extension install nektos/gh-act
act -W .github/workflows/ci.yml
act -W .github/workflows/ci.yml -j test # 특정 작업
act pull_request # 특정 event
한계점
- Act는 도커 위에서 돌아가니까, Linux Act 환경에서는 macOS 작업을 실행할 수 없어.
- Apple 전용 액션, 비밀값 저장소, OIDC 같은 일부 GitHub-호스팅형 기능은 로컬에서 작동하지 않아.
- 이미지가 GitHub에서 제공하는 것과 달라서 가끔 예상치 못한 작은 차이가 생길 수 있어.
함께 쓰면 좋은 도구
actionlint— 워크플로 YAML을 정적으로 검사해 줘. 실행 조건 이름이나 표현식의 오타 같은 걸 실행 없이도 잡아낼 수 있어.gh act— Act를 감싸주는 GitHub CLI 확장이야.