github-actions CI/CD 사용기 본문
반응형
이번 포스팅은 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