Github Actions로 업무 자동화 도입하기 #1 : Github Actions란?
Github Actions로 업무 자동화 도입하기 #2 : Workflows (워크플로우)
Github Actions로 업무 자동화 도입하기 #3 : Workflows를 트리거 하는 이벤트
GithubActions의 구성요소를 정의하는 데에 많은 시간을 쏟고 싶지 않다.
그래서 나머지 구성요소를 싹 묶어서 정리하기로 했다 ㅎㅎ;;
1. Jobs
1-1. Job 란?
Jobs는 Workflows 내에서 실행되는 개별 작업 단위이다.
워크플로우는 여러 개의 잡으로 구성될 수 있으며, 각 Job은 독립적으로 실행된다.
1-2. Job의 특징
- 독립성: 각 Job은 독립적으로 실행되며, 필요에 따라 다른 Job에 의존성을 설정할 수 있다.
- 실행 환경: runs-on 키워드를 사용하여 Job이 실행될 환경을 지정한다.
- 병렬 실행: 기본적으로 각 Job은 병렬로 실행되지만, needs 키워드를 사용하여 순차적으로 실행되도록 설정 가능하다.
1-3. Job 예시
name: CI
on: [push, pull_request]
jobs:
build:
runs-on: ubuntu-latest
steps:
- name: Checkout code
uses: actions/checkout@v2
- name: Build application
run: make build
test:
runs-on: ubuntu-latest
needs: build
steps:
- name: Run tests
run: make test
- build Job은 ubuntu-latest 환경에서 실행되며, 코드를 체크아웃하고 애플리케이션을 빌드한다.
- test Job은 build Job이 완료된 후에 실행되며, 테스트를 수행한다.
2. Step
2-1. Step 란?
Steps는 Job 내에서 실행되는 개별 명령어 또는 작업이다.
각 Step은 순차적으로 실행된다.
2-2. 특징
- 순차 실행: 각 Step은 정의된 순서대로 실행된다.
- 명령어 실행: run 키워드를 사용하여 Shell 명령어를 실행할 수 있다.
- 작업 사용: uses 키워드를 사용하여 사전 정의된 작업을 호출할 수 있다.
2-3. 예시
steps:
- name: Checkout code
uses: actions/checkout@v2
- name: Set up Node.js
uses: actions/setup-node@v2
with:
node-version: '14'
- name: Install dependencies
run: npm install
- name: Run tests
run: npm test
- Checkout code: actions/checkout 작업을 사용하여 소스 코드를 체크아웃
- Set up Node.js: actions/setup-node 작업을 사용하여 Node.js 버전을 14로 설정
- Install dependencies: npm install 명령어를 실행하여 종속성 설치
- Run tests: npm test 명령어를 실행하여 테스트 수행
3. Actions
3-1. Actions 란?
Actions는 Workflows의 Step 내에서 실행되는 재사용 가능한 작업이다.
Github Market Place에서 제공되는 사전 정의된 작업을 사용하거나 사용자 정의 작업을 만들어 재사용 가능하다.
3-2. 특징
- 재사용성: 한 번 정의된 작업은 여러 Workflows에서 재사용 할 수 있다.
- 커뮤니티 제공: Github MarketPlace에는 다양한 작업을 제공함
- 사용자 정의: 직접 작업을 정의하여 특정 요구사항을 충족할 수 있음
3-3. 예시
steps:
- name: Checkout code
uses: actions/checkout@v2
- name: Set up Node.js
uses: actions/setup-node@v2
with:
node-version: '14'
- Checkout Code: actions/checkout 작업을 사용하여 소스 코드 체크아웃
- Set up Node.js: actions/setup-node 작업을 사용하여 Node.js 버전을 14로 설정
4. Runners
4-1. Runners 란?
Runners는 Workflows Job을 실행하는 환경(머신)이다.
Github Hosting Runner 와 Self Hosting Runner가 있다.
4-2. 종류
- Github Hosting Runner: Github가 제공하는 가상 환경에서 실행된다. 다양한 운영체제 지원
- Self Hosting Runner: 사용자가 직접 관리하는 물리적 또는 가상 머신에서 실행. 사용자 고유의 환경 설정 사용 가능
4-3. 예시
jobs:
build:
runs-on: ubuntu-latest
- runs-on: ubuntu-latest 환경에서 Job을 실행하도록 지정
그러니까 지금까지의 내용을 요약하자면
Runners는 Job을 실행하는 환경이고,
Job은 여러개의 Step으로 구성되며
Step은 개별 명령어 또는 작업을 실행하고,
Actions는 Step에서 호출되는 재사용 가능한 작업이다.
계층구조로 보자면 Runners > Job > Step > Actions
이건 내가 이해하기 쉽게 직접 그린 그림이다.
지금까지 정리한 구성요소의 전체적인 계층구조로 보면
Event > Workflow > Job > Step > Action
여기까지 정리하니 이제야 이 그림이 이해된다.
'개발 > 버전 관리' 카테고리의 다른 글
Github Actions로 업무 자동화 도입하기 #3 : Workflows를 트리거 하는 이벤트 (0) | 2024.07.31 |
---|---|
Github Actions로 업무 자동화 도입하기 #2 : Workflows (워크플로우) (0) | 2024.07.31 |
Github Actions로 업무 자동화 도입하기 #1 : Github Actions란? (0) | 2024.07.29 |
[Git] Git에서 rebase vs merge 차이 알아보기 (0) | 2024.07.02 |