로컬 환경에서 github action 테스트하기
2023. 6. 6. 23:40
오랜만에 사이드 프로젝트를 하면서 CI/CD 환경을 처음부터 설정하고 있다.
사소한 걸로 스크립트 실행이 계속 실패하는데 매번 푸시하면서 실행 결과를 확인하니 여간 번거로운게 아니다.
act라는 오픈소스를 활용해 로컬 환경에서 github action 스크립트를 테스트해볼 수 있다.
Docker 설치하기
docker 기반으로 돌아가는 커맨드이기 때문에 먼저 docker 환경설정이 필요하다
Mac 기준 https://docs.docker.com/desktop/install/mac-install 에서 Docker.dmg를 다운받고 설치하면 된다
Act 설치하기
brew install act
실행 가능한 workflow 확인하기
# 기본
act -l
# m1 mac일 경우
act -l --container-architecture linux/amd64
# 특정한 job들만 확인하기
act -j job_name -l
workflow 실행하는 명령어 예시
# 푸시 이벤트 시작 (기본)
act
# 푸시 이벤트 시작 (기본), m1 mac일 경우
act --container-architecture linux/amd64
# 특정한 이벤트 시작
act pull_request
# 특정한 job만 실행하기
act -j job_name
# 특정한 workflow만 실행하기
act -j lint -W .github/workflows/checks.yml
secret value와 함께 실행하기
값이 하나일 경우
act -s KEY=VALUE
값이 여러개일 경우 my.secret이라는 파일을 현재 경로에 만들고, 아래와 같은 형식으로 key-value를 작성한다.
KEY1=VALUE1
KEY2=VALUE2
아래의 명령어로 실행한다
act --secret-file my.secrets
이렇게 실행해보면 job 하나하나의 실행 결과가 터미널로 출력된다.
명령어 실행이 처음부터 실패하면 docker container ls -a
명령어를 쳐서, docker가 정상 실행 중인지 status column 을 확인해보자.