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
워크플로(Workflow): 특정 작업을 자동화하기 위한 설정 파일
yml 파일로 .github/workflows 폴더에 작성한다.
이벤트(Event): 워크플로가 실행되는 조건
예를 들어, push, pull_request 같은 이벤트가 발생할 때마다 실행하도록 설정할 수 있다.
잡(Job): 워크플로 안에서 실행되는 작업 단위
여러 잡을 병렬 또는 순차적으로 실행할 수 있다.
스텝(Step): 각 잡 내에서 실행되는 개별 명령어
예를 들어, "코드 체크아웃", "테스트 실행" 등이 스텝
push: 코드가 특정 브랜치에 푸시될 때 트리거
pull_request: 풀 리퀘스트가 열리거나 업데이트될 때 실행
schedule: 정해진 시간에 주기적으로 실행되도록 예약 (예: 매일 자정)
workflow_dispatch: 수동으로 워크플로를 실행할 수 있도록 설정
GitHub Actions의 ubuntu-latest와 같은 기본 환경에는 Chrome과 Firefox 같은 브라우저가 이미 설치되어 있다.
때문에 Cypress는 이 브라우저들을 사용해 헤드리스 모드(화면을 띄우지 않고 백그라운드에서 실행하는 모드)로 테스트를 진행할 수 있다.
GitHub Actions의 가상 머신은 실제로 브라우저를 열고 테스트를 실행할 수 있는 환경이기 때문에, 로컬 개발 환경처럼 테스트가 가능하다.
.yml 파일에 Cypress 명령어(npx cypress run)를 포함하면, GitHub Actions가 이 명령을 실행하여 Cypress 테스트를 수행한다.
GitHub Actions는 runs-on: ubuntu-latest 같은 설정을 통해 테스트를 위한 적절한 환경을 준비해 두었기 때문에, 추가 설정 없이도 Cypress 테스트가 가능하다.