한창 CI/CD에 대한 연동 작업을 하고 있다. Circle CI를 활용하여 빌드 배포 자동화를 완성해보자. Circle CI는 1개의 컨테이너를 제공하는데, 1달에 1500 시간 사용할 수 있으며, 여러 repository 까지 무료로 제공해준다!
- 작업 흐름은 다음과 같다.
- git push
- circle ci 에서 event catch
- circle ci 빌드 시작
- docker를 통해 ubuntu, node 이미지 실행
- build
- 성공한 build 파일을 배포할 서버로 전송
- 운영 서버에 접속 후 서버 리스타트
Circle CI 셋팅
- Circle CI에 프로젝트 추가
Circle CI 대시보드 => Add Project 에서 원하는 repository 추가
- Circle CI에 연결된 프로젝트에 SSH Key를 추가
다음 링크를 참고 : https://twpower.github.io/47-deploy-to-server-in-circle-ci
- config.yml 셋팅
1 | cd 프로젝트 경로로 이동 |
다음과 같은 내용을 입력한다
1 | # Javascript Node CircleCI 2.0 configuration file |
- deploy-test.sh 생성
1 | cd 프로젝트 루트 |
다음 내용을 입력하자
1 | !/bin/bash |
저장후 sh를 실행가능하도록 만든다
chmod +x deploy-test.sh
rsync를 활용하는 것이 굉장히 빠르다. (scp를 사용하면 파일전송만 1시간이 걸린다;;) rsync의 옵션의 경우 다음 링크를 참조( http://gyus.me/?p=214 )
<<’ENDSSH’ ENDSSH
여기서 ENDSSH는 원하는 글자로 바꿔도 된다. 시작 끝 태그만 동일하면 됌.
자 이제 git 커밋을 자동하면 자동으로 빌드/배포/리스타트가 이루어진다!!
Reference
circle CI : https://twpower.github.io/47-deploy-to-server-in-circle-ci
rsync : http://gyus.me/?p=214