Github Action

leekoby·2023년 4월 3일
0

개발방법

목록 보기
5/5
제목날짜내용
발행일23.04.03

📌들어가기에 앞서


해당 포스트는 Github Action를 학습한 것을 정리한 내용입니다.





🌈 Github Actions이란?

GitHub Actions는 Github가 공식적으로 제공하는 빌드, 테스트 및 배포 파이프라인을 자동화할 수 있는 CI/CD 플랫폼이다.

레포지토리에서 Pull Requestpush 같은 이벤트를 트리거로 GitHub 작업 워크플로(Workflow)를 구성할 수 있다.

워크플로는 하나 이상의 작업이 실행되는 자동화 프로세스로, 각 작업은 자체 가상 머신 또는 컨테이너 내부에서 실행된다.

워크플로는 .yml (혹은 .yaml ) 파일에 의해 구성되며, 테스트, 배포 등 기능에 따라 여러개의 워크플로도 만들 수 있다.

생성된 워크플로는 .github/workflows 디렉토리 이하에 위치한다.

비공개 레포지토리의 경우 Github Actions가 작동할 때의 용량과 시간이 제한되어있으며 공개 레포지토리는 무료로 사용 가능하다.

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은 빌드를 위한 준비과정으로 볼 수 있다.
    Node.js로 만든 서버 애플리케이션은 npm으로 관련 오픈소스를 모두 깔끔하게 설치해야 작동하기 때문
  • 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



📚 레퍼런스

Github Actions 공식문서

0개의 댓글