Github actions로 CI/CD 구현하기

김현재·2022년 3월 14일
0
post-thumbnail

항상 CI/CD 이야기는 많이 들어보았는데 정확히 어떤 것인지 감이 안와,
간단하게 구현할 수 있다는 github actions를 활용하여 한번 만들어보았다.

결론부터 말하면

정말 쉽다…!
이미 구현되어있는 탬플릿도 많고, 직접 만들때도 예제가 있어 설명만 잘 읽으면 바로 뚝딱 만들 수 있다.
특히 yml파일로 관리하다보니, vscode에서도 어렵지 않게 수정 및 보완이 가능하여 나같은 초심자들에게 좋은 서비스인 것 같다ㅎㅎㅎ
(아직 travis나 jenkins는 사용해본적이 없는데, 이들을 사용하려면 생각보다 셋팅할 것이 많다고 들었다….)

셋팅방법

# This is a basic workflow to help you get started with Actions

name: CI

# Controls when the workflow will run
on:
  # Triggers the workflow on push or pull request events but only for the develop branch
  push:
    branches: [develop]
  pull_request:
    branches: [develop]

  # Allows you to run this workflow manually from the Actions tab
  workflow_dispatch:

# A workflow run is made up of one or more jobs that can run sequentially or in parallel
jobs:
  # This workflow contains a single job called "build"
  build:
    # The type of runner that the job will run on
    runs-on: ubuntu-latest
    env:
      working-directory: ./ms-ui

    # Steps represent a sequence of tasks that will be executed as part of the job
    steps:
      # Checks-out your repository under $GITHUB_WORKSPACE, so your job can access it
      - uses: actions/checkout@v2

      # Runs a single command using the runners shell
      - name: Run a one-line script
        run: echo Hello, world!

      - name: Installing dependencies
        run: yarn install
        working-directory: ${{ env.working-directory }}

      - name: Testing build
        run: yarn build
        working-directory: ${{ env.working-directory }}

      # Runs a set of commands using the runners shell
#       - name: Run a multi-line script
#         run: |
#          echo Add other actions to build,
#          echo test, and deploy your project.

셋팅은 어렵지 않은데,
Name에다가 해당하는 job을기재해놓고, run에다가는 그걸 실행할 수 있는 명령문을 기재하면 된다.
BE프로젝트 안에 있는 FE프로젝트를 빌드해야되는 경우에는, env설정을 해둔 뒤, working directory로 지정해두면,
알아서 그곳에 가서 빌드작업을 진행한다.

아쉬운점(?)

회사 서비스가 aws lightsail을 사용하는 중이여서 github actions를 통해 자동 배포까지는 사용할 수가 없다..ㅠㅠ
(ec2의 경우 탬플릿도 있고, ssh를 사용해서 원격 연결도 가능하기에 어렵지 않게 사용할 수 있다고)
사정상 지금은 github actions를 통해 서비스 실제 빌드 전 타입체크 용으로 사용하고 있다.

Lightsail에서는 보통 젠킨스나 트래비스를 사용하는것 같아 그쪽으로 조금 더 연구를 해봐야할 것 같다…
아니면 서비스에 유입이 많아질때까지 존버한 후에..ec2로 마이그레이션을 하던지..
물론 트래비스가 어렵다면 존버할 것 같다^^….

profile
쉽게만 살아가면 재미없어 빙고!

0개의 댓글