2019-9-6 CI 붙이기
CircleCI
- circleCI를 통해 배포준비를 한다. github계정과 연동을 했지만 이번에는 organization에 있는 디렉토리를 배포를 하려다보니 circleCI의 Add project에 안나온다.
- organization의 circleCI이슈가 생겨서 우선 organization의 directory를 fork해서 진행하기로 했다.
- circleCI의 Add project를 통해 MoneyDog프로젝트 setUp한다. setup을 하기 위해 OS와 language선택을 하고, 설정파일을 만들고 push 해야한다.
- github organization에서 세팅이 안됬던 부분은 organization의 role을 오너로 변경을 하니까 organization자체적으로 설정을 할 수 있었다. organization settings에 third-part access에 circleCI를 추가하면 된다.
- circleCI의 switch organization을 통해 organizationName으로 변경을 한다. 이전에 계속 안나왔었는데, 위에 사진 영억을 deny했다가 다시 grant를 하고 나서 해당 페이지를 refresh하니까 보였다.
- build를 하니 ci는 제대로 동작을 했다.
# Javascript Node CircleCI 2.0 configuration file
# Check https://circleci.com/docs/2.0/language-javascript/ for more details
version: 2 # use circleCI version2.0
jobs:
build:
branches:
only:
- dev
- jy-issue-37
docker:
# specify the version you desire here
- image: circleci/node:8
# Specify service dependencies here if necessary
# CircleCI maintains a library of pre-built images
# documented at https://circleci.com/docs/2.0/circleci-images/
# - image: circleci/mongo:3.4.4
working_directory: ~/server
steps: # a collection of executable commands
- checkout # special step to check out source code to working directory
- run:
name: update-npm
command: 'sudo npm i -g npm@latest'
# Download and cache dependencies
- restore_cache:
keys:
- v1-dependencies-
# fallback to using the latest cache if no exact match is found
- v1-dependencies-
- run:
name: install node modules
command: npm install
- save_cache:
paths:
- ./node_modules
key: v1-dependencies-
# run tests!
# - run: npm test
- jy-issue-37에 대한 push를 한결과 ci는 돌아가지만 No configuration was found in your project라는 에러가 발생
- .circleci/config.yml파일이 없다는 에러메세지로서 ~/server/.circleci/config.yml에서 ~/.circleci/config.yml로 파일 위치를 변경해본다.
- 위의 방법대로 진행을 했을때 정상적으로 build가 되었다. github directory에는 server, client, api디렉토리가 다 있기때문에 여기에 .circleci디렉토리를 만들고, /server디렉토리에 대해서만 ci를 진행한다.
CI에 Lint붙이기
$eslint . --exit .js
- run:
name: ESLing, write report
command: |
mkdir -p ~/reports
eslint . --ext .js --output-file ~/reports/eslint.xml
- 위의 명령어를 통해 디렉토리 전체에 대해서 linting을 진행을 한다. .js뒤에 –fix옵션을 붙이면 사소한 실수는 고쳐준다.
- ci에 붙여보기 위해 config.yml에 lint관련 명령어를 붙어보았다.
circleCI issue : eslint command not found
- 프로젝트 디렉토리에서는 정상적으로 동작을 하지만 ci에서는 eslint command not found로 나온다.
Written on September 6, 2019