Skip to content
JinHyouk York edited this page Nov 13, 2019 · 1 revision

CI

Travis CI를 사용하여 테스트를 한다.

Test 구성

FrontEnd

  • Feature => client-develop [PR]

각각의 기능 브랜치에서 개발 브랜치로 PR이 일어나면 feature 브랜치에서 CI가 발생

  1. (Jest, Enzyme) 컴포넌트 단위/통합 테스트
  2. (Cypress) Storybook에서 작성한 컴포넌트에 대한 E2E 테스트
  • client-develop => client-master [PR] && Feature => client-develop [Merge]
  1. (Cypress) Storybook에서 각 컴포넌트에 대한 E2E 테스트
  2. (Cypress) 실제 리액트 프로젝트에서 E2E 테스트
  • client-develop => client-master [Merge]

PR 과정과 동일한 테스트 과정을 거치며, Deploy 과정을 포함

BackEnd

  • Feature => server-develop [PR, Merge] && server-develop => server-master [PR]

(Jest, Supertest) Middleware, Controller 단위 테스트

  • server-develop => server-master [Merge]

PR 과정과 동일한 테스트 과정을 거치며, Deploy 과정을 포함

Envs

Travis 에서 사용하는 환경변수임 현재까지는 아래와 같은 환경변수를 가짐

  • IMAGE_NAME=test
  • IMAGE_TAG=0.0.1
  • DOCKER_USER=jdd04026
  • secure - DOCKER_PASS

Image 에 대한 값들은 서버 deploy 시에 사용할 docker image tag임.

Jobs

Jobs는 include 된 것들에 대한 Stage의 병렬 테스트가 이뤄짐.

  • Feature => Develop [PR]

head branch가 develop일 경우 (develop 으로 PR이 일어날 경우) 발생하는

    - stage: "Server Feature"
      if: head_branch = server-develop
      before_script:
        - docker build -t "${DOCKER_USER}/${IMAGE_NAME}:${IMAGE_TAG}" ./server
      script:
        - echo "$DOCKER_USER"
        - docker images
        - docker run -it "${DOCKER_USER}/${IMAGE_NAME}:${IMAGE_TAG}" npm run test
  • Develop => Master [PR] && Feature => Develop [Merge]

branch가 develop, master 둘중 하나일 경우 일어남

    - stage: "Server Deploy"
      if: branch = server-develop OR branch = server-master
      before_script:
        - docker build -t "${DOCKER_USER}/${IMAGE_NAME}:${IMAGE_TAG}" ./server
      script:
        - echo "$DOCKER_USER"
        - docker images
        - docker run -it "${DOCKER_USER}/${IMAGE_NAME}:${IMAGE_TAG}" npm run test
  • Develop => Master [Merge]

아래의 과정은 branch 가 master 일 경우 (master로 push가 이뤄지며 merge 가 이뤄지는 상황) Deploy 과정 Develop => Master [PR] 의 과정에 이어서 일어남.

      deploy:
        provider: script
        script: 
          - echo "$DOCKER_PASS" | docker login -u "$DOCKER_USER" --password-stdin;
          - docker tag "${DOCKER_USER}/${IMAGE_NAME}:${IMAGE_TAG}" "${DOCKER_USER}/${IMAGE_NAME}:latest"
          - docker push "${DOCKER_USER}/${IMAGE_NAME}:latest" && docker push "${DOCKER_USER}/${IMAGE_NAME}:${IMAGE_TAG}"
        on:
          branch: server-master

BookUs!

개요
기획서

Tech

실용적인 리액트 테스트 전략
DevOps
Infra Structure
컴포넌트 작성법
Client Sturcture

Documents

데이터베이스 스키마
Yarn workspace 명령어
Docker를 이용한 서버 개발 환경
Linting Tools

Stress Testing Log

테스트 로그

1차 테스트

📝 Agile Process

스프린트 0주차: 기획 단계
스프린트 1주차: 개발 환경 구축
스프린트 2주차: 개발
스프린트 3주차: 개발
스프린트 4주차: 개발
스프린트 5주차: 개발
👉 스프린트 6주차 🔥

👷‍♂️ Technique Writing

🤝 Rules

Clone this wiki locally