Github Actions

Joseph·2024년 11월 6일

정의

GitHub가 제공하는 자동화 플랫폼
자동화된 작업(워크플로)을 GitHub에서 직접 설정하고 실행할 수 있는 기능

코드를 push했을 때 자동으로 테스트를 실행하거나,
코드를 build 및 배포하는 등의 작업을 GitHub Actions에서 자동으로 처리할 수 있다.

예시 코드

# test.yml

name: Run Tests # 워크플로의 이름을 지정

on: push  # 이벤트(Event)

jobs: # 잡(Job)
  test: # 잡(Job) 이름
    runs-on: ubuntu-latest 잡을 실행할 환경(여기서는 우분투 최신 버전)
    steps:  # 스텝(Step)
      - uses: actions/checkout@v2
      - name: Run Tests  # 첫 번째 스텝: 테스트 실행
        run: npm test
  • 코드 내용 : 코드를 push할 때마다 테스트(npm test)를 자동으로 실행


주요 개념

  • 워크플로(Workflow): 특정 작업을 자동화하기 위한 설정 파일
    yml 파일로 .github/workflows 폴더에 작성한다.

  • 이벤트(Event): 워크플로가 실행되는 조건
    예를 들어, push, pull_request 같은 이벤트가 발생할 때마다 실행하도록 설정할 수 있다.

  • 잡(Job): 워크플로 안에서 실행되는 작업 단위
    여러 잡을 병렬 또는 순차적으로 실행할 수 있다.

  • 스텝(Step): 각 잡 내에서 실행되는 개별 명령어
    예를 들어, "코드 체크아웃", "테스트 실행" 등이 스텝


대표적인 on 이벤트 예약어

  • push: 코드가 특정 브랜치에 푸시될 때 트리거

  • pull_request: 풀 리퀘스트가 열리거나 업데이트될 때 실행

  • schedule: 정해진 시간에 주기적으로 실행되도록 예약 (예: 매일 자정)

  • workflow_dispatch: 수동으로 워크플로를 실행할 수 있도록 설정

Github Actions으로 Cypress 테스트 자동화?

GitHub Actions의 ubuntu-latest와 같은 기본 환경에는 Chrome과 Firefox 같은 브라우저가 이미 설치되어 있다.

때문에 Cypress는 이 브라우저들을 사용해 헤드리스 모드(화면을 띄우지 않고 백그라운드에서 실행하는 모드)로 테스트를 진행할 수 있다.

GitHub Actions의 가상 머신은 실제로 브라우저를 열고 테스트를 실행할 수 있는 환경이기 때문에, 로컬 개발 환경처럼 테스트가 가능하다.

.yml 파일에 Cypress 명령어(npx cypress run)를 포함하면, GitHub Actions가 이 명령을 실행하여 Cypress 테스트를 수행한다.

GitHub Actions는 runs-on: ubuntu-latest 같은 설정을 통해 테스트를 위한 적절한 환경을 준비해 두었기 때문에, 추가 설정 없이도 Cypress 테스트가 가능하다.

profile
안녕하세요 프론트와 백 둘다 관심있는 웹개발자 이창무입니다.

0개의 댓글