[Github] Github Actions란?, 사용법

2025. 2. 7. 15:21· Development Tools/GIT,GITHUB
목차
  1. 1.Github Actions
  2. 2.CI/CD
  3. 2-1.CI (Continuous Integration, 지속적 통합)
  4. 2-2. CD (Continuous Deployment 지속적 배포)
  5. 3. GitHub Actions Workflow 작성법
  6. 4.WorkFlow 예시 (Docker)
728x90


1.Github Actions

GitHub에서 제공하는 CI/CD 자동화 도구
이를 사용하면 코드 변경 사항을 자동으로 빌드, 테스트 및 배포할 수 있다.

 

 

2.CI/CD

2-1.CI (Continuous Integration, 지속적 통합)

코드 변경 사항을 정기적으로 통합하고 자동으로 테스트하는 프로세스
코드가 변경될 때마다 자동으로 빌드 및 테스트를 하고, 수행 코드 품질 유지 및 버그 조기 발견하기 위해 존재한다.

 

 

 

 

2-2. CD (Continuous Deployment 지속적 배포)

CI 이후 빌드된 코드를 자동으로 배포(Deployment)하거나, 운영 환경에 배포 가능한 상태로 유지(Delivery)하는 과정

 

 

 

 

 

 

3. GitHub Actions Workflow 작성법

기본 적으로 레포지토리의 루트에서 .github/workflows 내부에 작성한다.
name: 워크플로우 이름

on: 
  이벤트: # 이벤트로 워크플로우를 트리거 (예: push, pull_request 등)
    branches:
      - main  # 이벤트가 발생할 브랜치 설정

jobs:  # 작업 정의
  job_name:  # 작업 이름
    runs-on: ubuntu-latest  # 사용할 실행 환경 (예: ubuntu, windows, macos 등)
    steps:  # 작업에 포함될 단계들
      - name: 단계 이름
        uses: actions/checkout@v3  # 예: 소스 코드 체크아웃
      - name: 단계 이름
        run: npm install  # 예: 의존성 설치
      - name: 단계 이름
        run: npm test  # 예: 테스트 실행

 

 

레포지토리의 Actions 에들어가면 New workflow로 쉽게 워크플로우를 작성할수있다.

 

 

 

 

 

 

4.WorkFlow 예시 (Docker)

Docker 이미지를 빌드하고, 해당 이미지를 실행하여 테스트하는 과정을 담은 워크플로우다.
push또는 pull_request를 받을때 실행된다.
name: Docker Image CI

# 워크플로우가 어떤 이벤트에서 실행될지 정의
on:
  push:
    branches: [ "main" ]  # main 브랜치에 푸시될 때 실행
  pull_request:
    branches: [ "main" ]  # main 브랜치로의 풀 리퀘스트가 생성될 때 실행

jobs:
  build:
    runs-on: ubuntu-latest  # 실행 환경: 최신 Ubuntu

    steps:
    # 1. 코드 체크아웃: 리포지토리의 최신 코드를 가져옵니다.
    - uses: actions/checkout@v4 

    # 2. Docker 이미지 빌드 및 실행
    - name: Build and run Docker image
      run: |
        # 현재 시간을 Unix 타임스탬프 형식으로 태그로 사용
        IMAGE_TAG=$(date +%s) 
        
        # Docker 이미지를 빌드 (태그: my-image-name:<현재 시간>)
        docker build . --file Dockerfile --tag my-image-name:$IMAGE_TAG 
        
        # 빌드된 Docker 이미지에서 npm test 실행
        # --rm 플래그로 컨테이너 실행 후 자동으로 제거
        docker run --rm my-image-name:$IMAGE_TAG npm run test

 

728x90

'Development Tools > GIT,GITHUB' 카테고리의 다른 글

[Git] GitLab이란?  (0) 2025.02.09
[GITHUB] Github License  (0) 2025.01.13
[Git] .gitignore 커밋시 파일 무시하기  (0) 2024.07.27
  1. 1.Github Actions
  2. 2.CI/CD
  3. 2-1.CI (Continuous Integration, 지속적 통합)
  4. 2-2. CD (Continuous Deployment 지속적 배포)
  5. 3. GitHub Actions Workflow 작성법
  6. 4.WorkFlow 예시 (Docker)
'Development Tools/GIT,GITHUB' 카테고리의 다른 글
  • [Git] Monorepo(모노레포), Multi-repo(멀티레포)
  • [Git] GitLab이란?
  • [GITHUB] Github License
  • [Git] .gitignore 커밋시 파일 무시하기
아사_
아사_
프로그래밍 공부한거 정리해두는 메모장 블로그
아사_
개발공부 블로그
아사_
전체
오늘
어제
  • 분류 전체보기
    • FrontEnd
      • html
      • css
      • JavaScript
      • Node.js
      • React
      • React Native
    • BackEnd
      • SpringBoot
      • FastAPI
      • PHP
      • Flask
      • supabase
    • Language
      • Python
      • JAVA
      • Kotlin
      • C++
    • Development Tools
      • AWS
      • GIT,GITHUB
      • Docker
      • 메시지 브로커
      • 기타 도구,플랫폼
    • Computer Science
      • 개발지식
      • Server&Network
      • Algorithm&DataStructure
      • Security
      • DataBase
      • OS
    • AI
    • 기타
      • 잡다
      • Android
      • 도서
    • 클론코딩
      • 생활코딩 Express.js
      • 점프 투 장고
      • 생활코딩 Node.js

인기 글

최근 글

250x250
hELLO · Designed By 정상우.v4.2.2
아사_
[Github] Github Actions란?, 사용법
상단으로

티스토리툴바

단축키

내 블로그

내 블로그 - 관리자 홈 전환
Q
Q
새 글 쓰기
W
W

블로그 게시글

글 수정 (권한 있는 경우)
E
E
댓글 영역으로 이동
C
C

모든 영역

이 페이지의 URL 복사
S
S
맨 위로 이동
T
T
티스토리 홈 이동
H
H
단축키 안내
Shift + /
⇧ + /

* 단축키는 한글/영문 대소문자로 이용 가능하며, 티스토리 기본 도메인에서만 동작합니다.