본문 바로가기

DevOps/CircleCI

CircleCI + Git + NodeJS + AWS Elastic Beanstalk로 배포하기(2) - CircleCI Test Result :: DANIDANI

nodejs에서 작성한 express 애플리케이션을 git에 CircleCI에서 자동 빌드가 되고 nodejs에서 작성한 테스트 코드가 실행됩니다.

빌드에 성공하고 테스트 코드도 모두 통과가 되면 AWS elastic beanstalk에 자동 배포를 해주는 ci/cd를 구축해봅니다.

 

➡️ 1편으로 바로가기

2020/11/05 - [DevOps/CircleCI] - CircleCI + Git + NodeJS + AWS Elastic Beanstalk로 배포하기(1) - CircleCI와 Git 연동

 

 


1. Config.yml 수정

CircleCI의 설정파일인 config.yml 파일을 수정해줍니다.

store_test_results에 path는 저장된 테스트 결과 파일의 주소를 입력해줍니다.

CircleCI에서 테스트 결과 xml를 만들어주는 것이 아닙니다...!

 

pwd 로 현재 위치를 확인하고 올바른 주소를 입력해줍니다.(삽질에서 나온 조언..)

Tests 탭에 결과가 잘 안 나온다? 하면 파일 경로를 잘못 입력했을 확률이 큽니다.

 

step에서는 실행하고자하는 명령어들을 입력하면 됩니다.

jobs:
  test:
    executor:
      name: node/default
      tag: '13.14'
    steps:
      - checkout
      - node/install-packages
      - run:
          name: Running Test Code
          command: npm run test
      - run:
          name: Installing deployment dependencies
          command: |
            sudo apt-get -y -qq update            
            sudo apt-get install python3-pip python3-dev build-essential
            sudo pip3 install awsebcli --upgrade
      - run:
          name: Deploying
          command: |
            git config --global core.autocrlf input
            eb deploy Mocha-practice-dev
      - store_test_results:
          path: ~/project/artifacts/test
orbs:
  node: circleci/node@3.0.0
version: 2.1
workflows:
  test_my_app:
    jobs:
      - test

 

nodeJS package.json 에서 다음과 같은 스크립트를 추가해줬기에 npm test 명령어로 테스트 코드를 모두 실행할 수 있었습니다.

테스트 결과 xml이 저장된 경로는 프로젝트/xunit.xml이었습니다.

"scripts": { 
    "start": "nodemon ./bin/www", 
    "test": "jenkins-mocha test/* -Dfile.encoding=UTF8 -R spec-xunit-file -exit "
}

2. 결과 확인

(1) 테스트 코드가 성공했을 때

 

(2) 테스트 코드가 실패했을 때

다음시간에는 자동 빌드, 자동 테스트에 성공한 코드를 AWS Elastic Beanstalk로 자동 배포되는 작업을 해보겠습니다.

728x90