뭐하는 도구?
소프트웨어 workflow(CI / CD)를 자동화할 수 있도록 도와주는 도구
- CI : 테스트, 빌드, Dockerizing, 저장소에 전달하는 것까지 프로덕션 환경으로 서비스를 배포할 수 있도록 준비하는 프로세스
- CD : 저장소로 전달된 프로덕션 서비스를 실제 사용자들에게 배포하는 프로세스
좀 쉽게 말해서…
- 작업한 소스 코드를 빌드하고, 저장소에 전달 후 배포까지 하는 과정을 자동화
- 잘못된 코드가 없는지 확인하기, 서버에 올리기 등을 github에 push하는 동시에 깃허브가 알아서 점검해주는 도구!!!
- AWS 등과 연결만 해두면 실제로
git push를 하자마자 클라우드 속 인스턴스에 알아서 올라간다. - 개발자에게 자신의 코드를 미리 점검하고 고칠 수 있는 기회를 주기에 프로그램을 배포하는 과정에서 굉장히 중요하다.
어떻게 설정?
- 자신의 프로젝트에
.github/workflows라는 폴더를 만들고, 그 안에xxx.yml파일을 작성한다. - 자신의 토큰이 Github Actions를 지원하지 않을 수도 있으니 이를 확인하고, 필요 시 토큰을 새로 등록한다.
- GitHub Actions 권한 확인: 개인 저장소에서 작업하는 경우, GitHub Actions의 권한을 확인해야 한다. GitHub의 리포지토리 설정에서 Actions 탭으로 이동한 후, 권한 설정이 Read and write로 설정되어 있는지 확인할 것.
- 필요 시 환경변수를 등록하고
git push를 하면 된다. github는 자체적인 도커 컨테이너를 만들어서 이를 테스트.
환경변수 등록
테스트를 하려면 환경변수를 넣어줘야 할 때가 있는데, Github Actions에서는 이를 위해 Actions secrets and variables이라는 기능을 제공한다.
- 좌측 상단의
Settings를 누르고, Secrets and Variable→Actions를 클릭- 다음과 같은 화면이 나오면 된다.
여기서 초록색 버튼 (New repository secret)을 클릭.
Name에 키, Secret에 값을 넣는다. (처음에는 저기에 env 파일 전체를 넣는 줄 알았으나, 그게 아니라 하나하나 넣어야 한다.)
yml 파일에서 Github secret에 등록한 변수는 다음과 같이 작성한다.
yaml
EXAMPLE.KEY = ${{ secrets.xxxx }}