개발/강의

유튜브 : CICD 1

EJ EJ 2025. 4. 15. 10:38

CICD란?

테스트, 통합, 배포의 과정을 자동화하는 것!

 

일반적으로 다음과 같은 과정으로 일어난다.

DEVELOP → COMMIT → BUILD → TEST → DEPLOY

특정 기능을 개발 완료해서 커밋을 찍으면 빌드게 되게 셋팅한다. 빌드가 완료되면 작성한 테스트 코드를 실행시킨다. 그런 뒤 테스트 코드가 통과하면 실제 서버 컴퓨터에 최신 코드가 배포된다.

 

사용하는 툴은 여러가지가 있다.

Github Actions, Jenkins, Circle CI, Travis CI 등

이중에서 현업에서도 많이 사용하면서, 무료로 사용 가능하고 빌드용 서버가 따로 필요없는 GitHub Actions를 활용해서 CICD를 구축할 것이다.

현업에서 Jenkins도 많이 활용한다. 하지만 별도의 서버 구축을 해야 하기에 서버를 빌리는 비용이 발생한다는 단점이 있어, 별도의 서버 구축 없이 GitHub에 내장되어 있는 Github Actions 기능을 사용할 수 있다. 비용적인 측면이 유리하고 셋팅하는 데 시간을 쓸 필요가 없다.

 

Github Actions란?

로직을 실행시킬 수 있는 일종의 컴퓨터라고 생각하면 된다.

Github Actions를 사용한 CI/CD 전체흐름은 일반적으로 아래의 흐름을 가진다.

개발자 → Commit & Push → Github → 실행(Event Trigger) → Github Actions → 배포(Deploy) → AWS EC2

1.코드 작성 후 Commit

2.Github에 Push

3.Push를 감지해서 Github Actions에 작성한 로직이 실행

  a.빌드(Build)

  b.테스트(Test)

  c.배포(Deploy)

4.서버에서 배포된 최신 코드로 서버를 재실행

 

[Github Actions 기본 문법]

인텔리제이 프로젝트 파일 최상단 위치에 아래 세가지 파일 생성하기

1. .github  (이름 변경 안됨)

2. workflows  (이름 변경 안됨)

3. deploy.yml  (원하는 이름의 yml 파일) : 여기에 깃헙액션스 실행시킬 코드 작성(workflow에 대한 내용이 담긴다.)

ex)

# Workflow의 이름
name: GitHub Actions 실행시켜보기

# Event: 실행되는 시점을 설정
# main 브랜치에 push 될 때 아래 Workflow를 실행한다.
on:
  push:
    branches:
      - main

# 하나의 Workflow는 1개 이상의 Job으로 구성된다. 그리고 하나의 Job은 여러 step들로 구성된다.
# 여러 Job은 기본적으로 병렬적으로 수행된다.
jobs:
  My-Deploy-Job:
    runs-on: ubuntu-latest

    steps:
      - name: Hello World 찍기
        run: echo "Hello World"

      - name: 여러 명렁어 문장 찍기
        run: |
          echo "Good"
          echo "Morning"

      - name: GitHub Actions 자체에 저장되어 있는 변수 사용해보기
        run: |
          echo $GITHUB_SHA
          echo $GITHUB_REPOSITORY

      - name: 외부에 노출이 되면 안되는 값
        run: |
          echo ${{ secrets.MY_NAME }}
          echo ${{ secrets.MY_HOBBY }}

 

이후에 깃헙 레포지토리 생성 후 위 프로젝트 Push하기

 

깃헙에서 Actions 확인하기

'개발 > 강의' 카테고리의 다른 글

인프런 : Docker 6 - AWS ECR  (0) 2025.04.14
인프런 : Docker Copmose 5  (0) 2025.04.14
인프런 : Docker Copmose 4  (0) 2025.04.12
인프런 : Dockerfile 3  (0) 2025.04.11
인프런 : Docker Volume 2  (0) 2025.04.11