열렬히.뛰기

Github Action

소프트스킬 > Github Action

뭐하는 도구?

소프트웨어 workflow(CI / CD)를 자동화할 수 있도록 도와주는 도구

  • CI : 테스트, 빌드, Dockerizing, 저장소에 전달하는 것까지 프로덕션 환경으로 서비스를 배포할 수 있도록 준비하는 프로세스
  • CD : 저장소로 전달된 프로덕션 서비스를 실제 사용자들에게 배포하는 프로세스

좀 쉽게 말해서…

  • 작업한 소스 코드를 빌드하고, 저장소에 전달 후 배포까지 하는 과정을 자동화
  • 잘못된 코드가 없는지 확인하기, 서버에 올리기 등을 github에 push하는 동시에 깃허브가 알아서 점검해주는 도구!!!
  • AWS 등과 연결만 해두면 실제로 git push를 하자마자 클라우드 속 인스턴스에 알아서 올라간다.
  • 개발자에게 자신의 코드를 미리 점검하고 고칠 수 있는 기회를 주기에 프로그램을 배포하는 과정에서 굉장히 중요하다.

어떻게 설정?

  1. 자신의 프로젝트에 .github/workflows라는 폴더를 만들고, 그 안에 xxx.yml 파일을 작성한다.
  2. 자신의 토큰이 Github Actions를 지원하지 않을 수도 있으니 이를 확인하고, 필요 시 토큰을 새로 등록한다.
  3. GitHub Actions 권한 확인: 개인 저장소에서 작업하는 경우, GitHub Actions의 권한을 확인해야 한다. GitHub의 리포지토리 설정에서 Actions 탭으로 이동한 후, 권한 설정이 Read and write로 설정되어 있는지 확인할 것.
  4. 필요 시 환경변수를 등록하고 git push를 하면 된다.
  5. github는 자체적인 도커 컨테이너를 만들어서 이를 테스트.

환경변수 등록

테스트를 하려면 환경변수를 넣어줘야 할 때가 있는데, Github Actions에서는 이를 위해 Actions secrets and variables이라는 기능을 제공한다.

  1. 좌측 상단의 Settings 를 누르고,
  2. Secrets and VariableActions를 클릭
  3. 다음과 같은 화면이 나오면 된다.

여기서 초록색 버튼 (New repository secret)을 클릭.

Name에 키, Secret에 값을 넣는다. (처음에는 저기에 env 파일 전체를 넣는 줄 알았으나, 그게 아니라 하나하나 넣어야 한다.)

yml 파일에서 Github secret에 등록한 변수는 다음과 같이 작성한다.

yaml
EXAMPLE.KEY = ${{ secrets.xxxx }}