GitHub Actions는 CI/CD를 자동화하는 강력한 도구이지만, 워크플로우를 실행할 때마다 GitHub에 푸시해야 한다면 시간이 낭비될 수 있습니다. 이를 해결하기 위해, 로컬에서 GitHub Actions를 실행하는 방법을 알아보겠습니다.
act는 GitHub Actions를 로컬에서 실행할 수 있도록 해주는 도구입니다. 이를 사용하면 GitHub의 실행 환경을 시뮬레이션하여 테스트할 수 있습니다.
brew install act
scoop install act
curl -s https://raw.githubusercontent.com/nektos/act/master/install.sh | sudo bash
또는, GitHub Releases에서 바이너리를 다운로드하여 사용할 수도 있습니다.
설치가 완료되면, GitHub Actions을 실행할 디렉토리로 이동하여 다음 명령어를 실행합니다.
act
기본적으로 .github/workflows/
폴더 내의 워크플로우를 찾아 실행합니다.
act push # push 이벤트 실행
act pull_request # pull_request 이벤트 실행
act -l # 실행 가능한 이벤트 목록 확인
워크플로우 파일이 .github/workflows/eas-update.yml
로 구성되어 있을 경우, 아래 명령어로 실행할 수 있습니다.
act workflow_dispatch -W .github/workflows/eas-update.yml \
-s EXPO_TOKEN=mytoken \
-P ubuntu-latest=catthehacker/ubuntu:act-latest \
--container-architecture linux/amd64
act는 기본적으로 medium
사이즈의 Docker 이미지를 사용합니다. 더 가벼운 이미지를 사용하려면 -P
옵션을 이용하세요.
act -P ubuntu-latest=nektos/act-environments-ubuntu:18.04
GitHub Actions에서 secrets.GITHUB_TOKEN
과 같은 환경 변수를 사용하는 경우, 로컬에서 실행하려면 .secrets
파일을 만들어야 합니다.
echo "GITHUB_TOKEN=mytoken" > .secrets
act --secret-file .secrets
act는 Docker 컨테이너 내에서 실행되므로, Docker가 반드시 설치되어 있어야 합니다. 또한, GitHub Actions에서 사용하는 도구(예: Node.js, Python 등)가 로컬 환경에도 있어야 합니다.
act를 사용하면 GitHub Actions를 로컬에서 빠르게 테스트하고 디버깅할 수 있습니다. 이를 활용하면 불필요한 푸시를 줄이고, 빠른 피드백을 얻을 수 있습니다.
더 자세한 사항은 act 공식 문서를 참고하세요.