본문 바로가기

github-actions CI/CD 사용기 본문

개발/GCP

github-actions CI/CD 사용기

자전하는명왕성 2023. 5. 27. 17:14
반응형

이번 포스팅은 CI/CD를 함께 적용한 workflow에 대해 다룬다.

이전 포스팅에서는 CD에 대해 다뤘으니, 필요한 내용은 참고 바람 ^_^

2023.05.27 - [개발/GCP] - Github-actions 사용기 (with GCP)

 

내가 CI 과정 중 구현하려고 했던 것은 다음과 같다.

push가 진행될 시, 이에 대한 테스트 코드를 실행하여 정상적으로 구동되는지 확인 후, CD과정을 진행하는 것.

 

작성한 workflows

name: githubaction-cd

on:
  push:
    branches: [ "master" ]

jobs:
  ci :	// job에 새로운 요소 추가
    name : gitaction-test
    runs-on : ubuntu-latest // ubuntu 컴퓨터 빌리기

    steps :
    - name : checkout
      uses : actions/checkout@v3 // 소스 코드 가져오기
    - name : test
      uses : actions/setup-node@v3 // 빌린 컴퓨터에 노드 설치하기
      with :
        node-version : 18.x // 해당 버전은 18. dockerfile에서 사용한 Node 버전과 일치시켰다
        cache : "yarn" // 목적을 명확히 하기 위한 cache. npm인 경우 npm 작성
    - name : yarn install
      run : yarn install
    - name: create .env file // test코드 실행하는데 왜 env가 필요하냐 싶겠지만... 밑에 설명
      run: |
        touch .env // env 생성
        cat << EOF >> .env // env 파일 이동
        ${{ secrets.ENV }} /// .env // 환경변수에 .env 적용

    - name : yarn test
      run : yarn test

  cd:
    needs: ci // 이는 기본적으로 병렬적으로 실행되는 workflow를, 의존성을 주어 순차적으로 실행할 수 있게한다.
    name : gitaction-cd
    runs-on: ubuntu-latest
    // 중략 //

 

여기까지 진행하면, 다음과 같이 순차적으로 진행되는 것을 확인할 수 있다.

 

나타났던 문제

테스트 코드 실행 과정 시 데이터베이스의 드라이버를 요구하는 오류

 

이 오류의 경우, 내가 작성한 테스트 코드는 기존 데이터베이스를 Mocking해서 사용한 것이었지만, 

궁극적으로는 mocking하기 위해서는 데이터베이스가 어떤 방식으로 연결되어 있는지 명시해야 하기 때문에 생긴 문제였다.

이는 빌린 컴퓨터에 .env파일을 생성 및 env데이터를 삽입하는 것으로 해결할 수 있었다.

 

반응형

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

Github-actions 사용기 (with GCP)  (0) 2023.05.27
GCE - SSL PROVISOINING 문제  (0) 2023.05.26
Comments