CI/CD를 무엇으로 어떻게 진행해야할까?

권태형·2023년 7월 17일
0

bnb Back-Server Project

목록 보기
24/31

제목 그대로 "CI/CD를 무엇으로 어떻게 진행해야할까?"에 대한 생각이다.

단위 테스트(unit Test)에 대한 코드를 저번주 토요일에 완료하고 커버리지를 모두 채울 수 있었다.

이제 github action을 이용해서 CI/CD를 적용시켜 보고자 여러 포스팅을 둘러보았는데,

docker를 이용하는 경우도 있고, AWD codeDeploy를 이용하는 것도 있고, 그냥 github Action에 있는 marketplace에 있는 만들어진 action을 이용해 CD만 하는 포스팅도 있었다.

개발이라는 것이 워낙 길도 방법도 많은 곳이라 딱 잡아서 이것이 정답이야! 라고 할 수 있는 것이 아니라 이것도 정답이고 저것도 정답이야. 너한테 맞는걸 사용해! 라는 느낌이 더 많다.

따라서 나는 많은 github Action을 이용한 CI/CD구현 방법에서 나에게 맞는 선택지를 골라야 했다.

아무래도 사례가 많은 경우는 AWD codeDeploy를 이용하는 방법이었다. 전반적으로 잘 정리된 포스팅이 많고 내용도 AWS설정에 있어서 많은 부분을 차지하고 있었다.

docker를 이용하는 사례들은 따로 docker에 대해서 추가적인 학습시간이 필요해 보였다.

따라서 marketplace에 있는 만들어진 appleboy를 이용해서 CD부분을 완성하고, 따로 AWD codeDeploy를 이용한 CI/CD에서 CI부분만 따로 내쪽에 적용해 나만의 CI/CD를 구성해 보는 것이 좋겠다고 생각이 들었다.

name: deploy

on:
  push:
    branches:
      - master
jobs:
  AUTO_DEPLOY:
    runs-on: ubuntu-latest

    steps:
      - uses: actions/checkout@v2
      - name: Run scripts in server
        uses: appleboy/ssh-action@master
        with:
          password: ${{ secrets.PASSWORD }}
          host: ${{ secrets.HOST }}
          username: ${{ secrets.USER_NAME }}
          port: ${{ secrets.PORT }}
          script: ${{ secrets.SCRIPT }}

위는 appleboy를 이용한 CD부분이다. 다른 CI/CD의 로직양에 비해서 매우 짧고 간단하며, 가독성도 높아보인다.

이 CD를 부분을 만들기 전에 job을 나누어 CI에서는 패키지 설치를 위한 npm ci와 테스트코드로 로직의 문제를 확인하기 위한 npm test로 ci부분을 만들고 위의 appleboy를 이용하여 자동적으로 배포가 이루어 질 수 있게 끔 CD를 구성하여 github action에 사용될 yaml파일을 만들어 봐야겠다.

profile
22년 12월 개발을 시작한 신입 개발자 ‘권태형’입니다. 포스팅 하나하나 내가 다시보기 위해 쓰는 것이지만, 다른 분들에게도 도움이 되었으면 좋겠습니다. 💯컬러폰트가 잘 안보이실 경우 🌙다크모드를 이용해주세요.😀 지적과 참견은 언제나 환영합니다. 많은 댓글 부탁드립니다.

2개의 댓글

comment-user-thumbnail
2023년 7월 18일

좋은 글 잘 읽었습니다, 감사합니다.

답글 달기
comment-user-thumbnail
2023년 7월 18일

항상 좋은 글 감사합니다.

답글 달기