제목 날짜 내용 발행일 23.04.03
해당 포스트는
Github Action
를 학습한 것을 정리한 내용입니다.
GitHub Actions는 Github가 공식적으로 제공하는 빌드, 테스트 및 배포 파이프라인을 자동화할 수 있는 CI/CD
플랫폼이다.
레포지토리에서 Pull Request
나 push
같은 이벤트를 트리거로 GitHub 작업 워크플로(Workflow)를 구성할 수 있다.
워크플로는 하나 이상의 작업이 실행되는 자동화 프로세스로, 각 작업은 자체 가상 머신 또는 컨테이너 내부에서 실행된다.
워크플로는 .yml
(혹은 .yaml
) 파일에 의해 구성되며, 테스트, 배포 등 기능에 따라 여러개의 워크플로도 만들 수 있다.
생성된 워크플로는 .github/workflows
디렉토리 이하에 위치한다.
비공개 레포지토리의 경우 Github Actions가 작동할 때의 용량과 시간이 제한되어있으며 공개 레포지토리는 무료로 사용 가능하다.
Github Actions에 대해 더 자세히 알고 싶은 경우 공식문서를 참고해주세요.
이번 튜토리얼에서는 Github Action을 이용하여 진행합니다.
먼저, 자신의 깃허브 계정에 새로운 리포지토리를 만든다.
public으로 만들어야 Github Action을 무료로 이용할 수 있다.
새로운 리포지토리에 나만의 아고라 스테이츠 서버 레퍼런스 코드를 push한다.
drag & drop을 할 수도 있다
가능하면 기존 코드를 클론받아서, 새로운 리포지토리를 원격 리포지토리로 등록하고, 코드를 push 해보자.
# 기존 나만의 아고라 스테이츠 서버 레퍼런스 클론
git clone git@github.com:codestates-seb/fe-sprint-my-agora-states-server-reference.git
# 디렉터리 이동
cd fe-sprint-my-agora-states-server-reference
# 새로운 리포지토리를 원격 리포지토리로 등록
git remote add myRepo git@github.com:{여러분의 아이디}/{새로운 리포지토리 이름}.git
# 기존 레퍼런스 코드를 새로운 리포지토리로 push
git push myRepo reference
아래와 같이 코드가 모두 push가 된 모습을 확인
좀 더 자세히 파악하기 위해 Actions 탭으로 이동
Github Action을 코드를 설정해두면 이렇게 서버 테스트가 자동으로 작동하는 것을 확인할 수 있다.
테스트가 작동하지 않는다면, Settings > Actions로 이동하여, Github Action이 활성화되었는지 확인
Github Action은 Github의 특정 이벤트에 맞게 다양한 작업을 시킬 수 있는 CI/CD 플렛폼이다.
EC2와 같은 하나의 가상 인스턴스를 실행시켜서 원하는 작업을 시킬 수 있다.
그런데, 리포지토리를 push하기만 했는데, 왜 작동했을까?
workflows 파일을 읽어보자. 언제 어떤 job을 할지 명시되어 있습니다.
npm install
은 빌드를 위한 준비과정으로 볼 수 있다.npm test
는 유닛 테스트 과정name: Bare Minimum Requirements
# 언제 job을 작동시킬지
on: [push, pull_request]
# 어떤 job을 할지
jobs:
test:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v2
- name: Bare Minimum Requirements
uses: actions/setup-node@v1
with:
node-version: '16'
- run: npm install
- run: npm test