1. Overview
- GitHub Actions는 CI/CD 플랫폼입니다.
- 빌드 - 테스트 - 배포 를 자동화할 수 있습니다.
- Repository의 다양한 이벤트가 발생할 때 Workflow를 실행합니다.
- 데이터 센터나 클라우드 인프라를 사용하기 위한 Virtual Machine을 호스팅해줍니다.
2. The Components of GitHub Actions
- Workflow는 저장소에서 발생하는 이벤트에 따라 트리거 될 수 있습니다.
- Workflow에는 하나 이상의 Job이 포함되면 각 Job은 다양한 Step을 포함합니다.
- 작업은 가상 머신 러너나 컨테이너 내에서 실행됩니다.
- Action은 Workflow를 단순화하기 위한 재사용 가능한 확장 기능입니다.
3. Create an example workflow
- GitHub Actions는 Workflow를 정의하기 위해 YAML 문법을 사용합니다.
- 코드가 푸쉬될 때마다 일련의 명령어를 자동으로 트리거합니다.
Workflows
- 하나 이상의 job을 실행하는 설정 가능한 자동화 프로세스 입니다.
- .github/workflows 디렉토리에 해당 파일을 저장합니다.
- 저장소 내의 이벤트에 따라 트리거 될 수 있습니다.
- 다양한 작업을 수행하는 워크플로우를 가질 수 있습니다.
Events
- 워크플로우 실행을 트리거하는 저장소 내의 특정 활동입니다.
- ex) Pull Request, Issue, Commit push
Jobs
- 같은 러너에서 실행되는 워크플로우의 일련의 단계입니다.
- 각 단계는 쉘 스크립트 또는 실행될 액션입니다.
- 다른 작업에 의존성을 설정할 수 있습니다.
Actions
- GitHub Actions 플랫폼을 위한 사용자 정의 애플리케이션 입니다.
- 작업의 반복 코드를 줄이기 위해 사용됩니다.
- GitHub Marketplace에서 액션을 찾거나 직접 작성할 수 있습니다.
Runners
- 트리거 될 때 워크플로우를 실행하는 서버입니다.
- GitHub에서 호스팅 서버를 제공합니다.
- 사용자가 직접 서버를 호스팅할 수 있습니다.
4. Understanding the workflow file
name: learn-github-actions
run-name: ${{ github.actor }} is learning GitHub Actions
on: [push]
jobs:
check-bats-version:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v4
- uses: actions/setup-node@v3
with:
node-version: '14'
- run: npm install -g bats
- run: bats -v
- name : 워크플로우의 이름을 설정합니다.
- run-name : 워크플로우에 생성된 실행의 이름을 설정합니다.
- on: 워크플로우의 트리거를 지정합니다.
- jobs : 워크플로우의 모든 작업을 그룹화합니다.
- check-bats-version : job의 이름을 정의합니다.
- runs-on : 작업이 GitHub에서 호스팅하는 Ubuntu-latest 버전의 Runner로 지정합니다.
- steps : check-bats-version 작업에서 실행되는 모든 단계를 그룹화합니다.
- use : 액션을 사용하여 작업을 수행합니다.
- run : 명령어를 사용하여 작업을 수행합니다.
- steps : check-bats-version 작업에서 실행되는 모든 단계를 그룹화합니다.
- runs-on : 작업이 GitHub에서 호스팅하는 Ubuntu-latest 버전의 Runner로 지정합니다.
- check-bats-version : job의 이름을 정의합니다.
출처