기존 회사에서는 Bitbucker pipeline을 통해 CI를 진행했었다. 하지만 개인 프로젝트에서는 소스 저장소로 깃허브를 사용하고있고 TravisCI를 사용해보고 싶어서 그 과정에 대해 포스팅을 남긴다.
TravisCI 회원 가입
먼저 아래의 주소로 들어가서 회원가입을 진행한다.
Repository 연동
원하는 레포지토리를 연동한다. 나는 hfive라는 레포지토리를 연동했다.
.travis.yml 작성
language: python
python:
- 3.7.4
branches:
only:
- master
- develop
services:
- mysql
before_install:
- mysql -e 'CREATE USER hfive@localhost IDENTIFIED BY "hfive"'
- mysql -e 'CREATE DATABASE test'
- mysql -e 'GRANT ALL PRIVILEGES ON test.* TO hfive@localhost IDENTIFIED BY "hfive" WITH GRANT OPTION'
- pip install pipenv
install:
- pipenv install --system
script:
- alembic upgrade head
- env=testing pytest
위 코드에 대해서 간단하게 설명하자면 다음과 같다.
- language: 사용하는 언어
- python: 버전 명시
- branches: 문서 하단에 설명
- services: 같이 구동해야할 서비스
- before_install: install전 실행해야할 명령어
- install: 설치해야할 서비스들(설치 등)
- script: 실행해야할 명령어
또한 여기서 라이프 사이클을 잠시 살펴보고 가야한다. TravisCI의 라이프 사이클은 다음과 같다.
apt addons -> cache components -> before_install -> install -> before_script -> script -> before_cache -> after_success or after_failure -> before_deploy -> deploy -> after_deploy -> after_script
주의할점은, travis.yml
이 아니라 .travis.yml
즉, 앞에 .이 붙어야 한다는 것이다. 파일을 만들었으면 커밋하고 푸시한다.
Dashboard 확인
Dashboard로 들어가서 My builds
탭으로 이동해보면 위처럼 무언가 실행되고 있다는 것을 확인할 수 있다.
클릭해서 들어가보면 상세한 실행 내역을 확인할 수 있다.
특정 브랜치에만 적용
모든 브랜치에 CI가 돌 필요는 없다. 일반적으로 Git flow에 따르면 master, develop정도만 CI가 돌아야할 필요성이 있다고 볼 수 있기 때문에 특정 브랜치에서만 돌도록 설정해주면 좋다. .travis.yml
에 아래의 내용을 추가한다.
# 원하지 않는 브랜치를 적고 싶으면 아래와 같이 except를 사용한다.
branches:
except:
- legacy
- experimental
# 원하는 브랜치만 적고 싶으면 아래와 같이 only를 사용한다.
branches:
only:
- master
- stable
'Coding > DevOps' 카테고리의 다른 글
Github Actions와 Psycopg2 삽질기 (0) | 2019.10.30 |
---|---|
Github Actions 연동하는 방법 (0) | 2019.10.30 |
Mongo Atlas 데이터 마이그레이션 하는 방법 (0) | 2019.06.26 |
AWS AMI이미지에 Redis-cli 설치하는 방법 (0) | 2019.06.13 |
ECS Fargate docker-compose 배포 방법(Blue/Green Deployment) (0) | 2019.06.05 |