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를 추가하면 된다.

image-20190904174241673

  • circleCI의 switch organization을 통해 organizationName으로 변경을 한다. 이전에 계속 안나왔었는데, 위에 사진 영억을 deny했다가 다시 grant를 하고 나서 해당 페이지를 refresh하니까 보였다.

image-20190904191950292

  • 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