📖 학습 목표
- GitHub Actions 기본 문법 정리
* GitHub Actions 공식 문서: https://docs.github.com/ko/actions
1. GitHub Actions 기본 문법 정리
1) YAML 파일 생성 및 실행
① main 브랜치로 이동
② VS Code 에서 기존 GitHub 프로젝트 루트 디렉토리 열기
③ .github/workflows 폴더 안에 YAML 파일 작성
# deploy.yml
name: Github Actions 실행시켜보기
on:
push:
branches:
- main
jobs:
My-Deploy-Job:
runs-on: ubuntu-latest
steps:
- name: Hello World 찍기
run: echo "Hello World"
④ YAML 파일을 GitHub 레포지토리에 Push
⑤ GitHub Actions 실행 확인
- GitHub 레포지토리 웹 페이지 → Actions 탭에서 설정한 워크플로우가 실행되는지 확인
- GitHub Actions 에서 작성한 코드들이 실행된 흔적 확인
- 즉, deploy.yml 파일이 GitHub에 Push됨 → 일종의 로직을 실행시키는 하나의 컴퓨터 GitHub Actions가 YAML 파일의 코드를 읽어서 실행시킴
- 실행 상태(성공/실패)를 확인하고 로그를 통해 문제를 디버깅할 수 있음
2) YAML 파일's 문법 뜯어보기
# deploy.yml
# Workflow: 하나의 YAML 파일 (단위)
name: Github Actions 실행시켜보기 # name: 워크플로우의 이름
# Event: 실행되는 시점을 설정
on: # 3. 이 GitHub Actions의 로직을 실행시키겠다
push: # 2. Push가 됐을 때
branches:
- main # 1. main 브랜치에
# 하나의 Workflow는 1개 이상의 Job으로 구성
# 여러 Job은 병렬로 수행됨
jobs:
My-Deploy-Job: # Job을 식별하기 위한 id
runs-on: ubuntu-latest # ubuntu 운영체제 / 가장 최신 버전
# Step: 특정 작업을 수행하는 가장 작은 단위
# 하나의 Job은 여러 Step들로 구성되어 있음
steps:
- name: Hello World 찍기 # Step의 이름
run: echo "Hello World" # Step이 수행할 코드: 현재 리눅스 코드
# Step 추가
- name: 여러 명령어 문장 작성하기
run: | # run 코드 여러줄 작성법: 바(|) 놓고 아래줄부터 줄 바꿈하며 작성
echo "Good"
echo "Morning"
# Step 추가2
- name: GitHub Actions 자체에 저장되어 있는 변수 사용해보기
run: |
echo $GITHUB_SHA # $: 리눅스에서 변수를 나타내는 표현 # 변수를 할당한 적 없지만, GitHub Actions 자체에 저장된 값을 사용
echo $GITHUB_REPOSITORY
# Step 추가3
- name: 아무한테 노출되면 안되는 값 사용해보기
run: |
echo ${{ secrets.MY_NAME }}
echo ${{ secrets.MY_HOBBY }}
- Workflow: 하나의 YAML 파일 (단위)
- name: Workflow의 이름
- Event: 이 Workflow가 실행되는 시점을 설정
- ex: main 브랜치에 Push가 됐을 때 이 GitHub Actions 로직을 실행시킴
- Job: 하나의 Workflow는 1개 이상의 Job으로 구성
- 여러 Job은 병렬로 수행됨
- Step: 하나의 Job은 여러개의 Step으로 나눠짐
- name: Step의 이름
- run: Step이 수행할 작업 (코드)
[tip] Step 추가 → GitHub Push
- name: 여러 명령어 문장 작성하기
[tip] Step 추가2 → GitHub Push
- name: GitHub Actions 자체에 저장되어 있는 변수 사용해보기
- GitHub Actions 자체 변수
▪ $GITHUB_SHA: 현재 커밋's id
▪ $GITHUB_REPOSITORY: 현재 레포지토리
[tip] Step 추가3 → GitHub Push
- name: "아무한테 노출되면 안되는 값"
- GitHub Actions에 사용할 시크릿 값 저장하기
(1) GitHub 웹페이지 → Settings → Secrets and variables → Actions → Secrets → New repository secret
▪ Name: 시크릿 값 키 (ex: MY_NAME)
▪ Secret: 시크릿 값 (ex: gamdong)
(2) Add secret 으로 시크릿 값 저장; 한 번 저장된 시크릿 값을 확인할 방법은 없음
(3) GitHub Push → Actions 확인해보면, 시크릿 값은 별표(***)로 출력
3) GitHub Actions 전체 구조
- Event 발생
- branch(main)에 이벤트(push)가 발생했을 때 워크플로우 실행시킴
- Workflows ⊃ Job ⊃ Step
'개발 지식 > CI, CD' 카테고리의 다른 글
CI/CD와 무중단 배포 (1) | 2024.12.19 |
---|---|
03. GitHub Actions CI/CD 흐름 (0) | 2024.12.17 |
02. GitHub Actions (0) | 2024.12.17 |
01. CI/CD를 왜 배우는 걸까? (0) | 2024.12.17 |