오랜만에 사이드 프로젝트를 하면서 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 을 확인해보자.