Cloud/Docker | K8s + CI, CD

[CI/CD][#1] CircleCI 를 활용한 자동화 파이프라인 구축

HelloJudy 2022. 5. 17. 19:26

0. 실습을 위한 GitHub Repo 구성

 

 

2차 프로젝트의 back 코드만 가지고 실습을 위한 GitHub 레퍼지토리를 생성했다.

 


1. CircleCI

1) 접속하기

 

📌 CircleCI 홈페이지 바로가기

 

깃허브로 로그인을 한다.

 

 

 

로그인을 하면 CircleCI 콘솔에 접속할 수 있다.

이때 이미 ./circleci/config.yml 파일을 생성해뒀다면 Set up Project 버튼이 비활성화 되어 있을 것이다.

 

 

 

나는 'CircleCI-practice' 레포 옆의 Set up Project를 클릭했다.

 

 

 

config.yml 파일을 선택하는 다양한 방법이 있는데 그 중에서 나는 Faster인 새로운 브렌치에 커밋하는 방법을 선택했다.

 

 

 

Success라고 되면 완성된 것이다.

깃허브에 들어가보면 자동으로 config 파일이 생성되었다.

 

2) config.yml 작성법

 

이 파일에 이제 내가 자동화하고자 하는 내용을 입력하게 된다. node를 선택했을 때 자동으로 생성되는 스크립트이다.

낯선 용어가 많기 때문에 용어부터 공부해보자.

# CircleCI 2.1 버전을 사용한다는 의미입니다.
# 각 버전에 따라 사용할 수 있는 속성이 다릅니다.
version: 2.1

# `node`라는 이름으로 `circleci/node@1.1.6` Orb를 사용한다는 의미입니다.
orbs:
  node: circleci/node@1.1.6

# `build-and-test`라는 이름을 가진 Job의 속성을 나열합니다.
jobs:
  build-and-test:

    # 이 Job의 executor는 node Orb의 default executor 입니다.
    executor:
      name: node/default
    
    # 이 Job에서 수행할 명령어 모음입니다.
    steps:

      # 이 프로젝트 코드를 executor에 다운로드 합니다.
      - checkout

      # node Orb의 with-cache 명령어 입니다.
      # node_modules 폴더를 package.json을 키로 가지는 캐시에 생성합니다.
      - node/with-cache:

          # 캐싱되어 있던 node_modules 폴더를 불러 온 후 실행할 명령어를 입력합니다.
          # 이 steps가 끝난 후의 node_modules를 캐시에 저장합니다.
          steps:
            - run: npm install
            - run: npm test

# build-and-test라는 workflow에는 build-and-test라는 Job을 가지고 있다는 의미입니다.
workflows:
    build-and-test:
      jobs:
        - build-and-test

 

1. Orb

  • 개발 구축을 위한 공유 가능한 구성 패키지

2. Job

  • workflow의 기본 단위
  • job은 step의 기본 단위

3. Step

  • steps는 job에서 커맨드를 실행하는 독립적인 단위

 

4. workflow


📌 Reference

 

https://velog.io/@kshired/CircleCI%EC%99%80-Docker%EB%A1%9C-CICD-%ED%8C%8C%EC%9D%B4%ED%94%84%EB%9D%BC%EC%9D%B8-%EA%B5%AC%EC%B6%95%ED%95%98%EA%B8%B0

반응형