travis CI란
Travis CI(Travis Continuous Integration)는 소프트웨어 프로젝트의 지속적인 통합과 배포를 지원하는 온라인 서비스다.
Travis를 GitHub과 연동하여 변경 사항이 감지되면 자동으로 빌드 및 테스트를 실행하는 등의 작업을 수행할 수 있다.
travis CI 장점
- 코드 변경 사항에 대해 간편하게 테스트/빌드할 수 있다.
- 자동화된 배포 프로세스를 설정할 수 있다.
- 빌드 기록, 테스트 결과, 배포 이력을 제공하여 코드 변경 사항의 추적과 버전 관리를 용이하게 한다.
travis CI를 github과 연동하는 방법
1. GitHub 계정 생성 또는 로그인
2. Travis CI와 연동할 GitHub 저장소 생성
3. Travis CI 웹사이트에 로그인
4. 저장소 활성화
Travis CI 대시보드에서 GitHub 계정에 연결된 저장소 목록을 확인하고, 연동할 저장소의 스위치를 활성화
5. Travis CI 설정 파일 생성
프로젝트 루트 디렉토리에 `.travis.yml` 파일을 생성. 파일 내에 빌드 환경, 테스트 스크립트, 빌드를 수행할 언어와 환경에 관한 정보를 작성한다.
7. Travis CI 설정 파일 커밋 및 푸시
`.travis.yml` 파일을 저장한 후, 저장소에 커밋하고 푸시
8. 빌드 확인
GitHub 저장소의 Travis CI 활성화된 저장소 페이지를 방문하여 빌드 상태 및 결과를 확인 가능
9. 자동 빌드 및 테스트
저장소에 새로운 커밋이 푸시될 때마다 Travis CI가 자동으로 빌드 및 테스트를 실행하는지 확인.
.travis.yml
`.travis.yml` 파일의 예.
language: python # 사용할 프로그래밍 언어를 지정
python: # 빌드 및 테스트를 수행할 Python 버전을 지정. 여러 버전의 Python을 테스트하는 경우
- "3.8"
- "3.7"
- "3.6"
- "3.5"
install: # 의존성 패키지를 설치
- pip install -r requirements.txt # requirements.txt 파일에 정의된 패키지들을 설치
before_script:
# 실제 빌드 스크립트인 script 섹션이 실행되기 전에 수행되는 명령어나 스크립트를 지정
# 데이터베이스 초기화, 환경변수 설정 등 ...
- pip install -r requirements.txt # requirements.txt에 정의된 패키지들을 설치
- cp config.example.ini config.ini # config.example.ini 파일을 config.ini로 복사하여 설정 파일을 준비
- psql -c 'create database test_db;' -U postgres # PostgreSQL 데이터베이스에 test_db라는 이름의 데이터베이스를 생성
# Travis CI에서 테스트를 설정하려면 script 섹션에 테스트 스크립트를 실행하는 명령어를 작성
script:
- python build_script.py # 빌드 스크립트를 실행
- pytest tests/ # tests/ 디렉토리 내의 테스트 코드를 실행
services:
# Travis CI 환경에서 사용할 서비스(주로 데이터베이스, 웹 서버, 캐싱 시스템 등과 같은 외부 서비스)를 지정하는 데 사용
- postgresql # PostgreSQL 서비스가 활성화되며, 테스트 중에 PostgreSQL 데이터베이스에 접속하고 쿼리를 실행할 수 있음
* ~.yml 파일에 script 가 없는데 테스트를 수행하고 있을 경우 *
Travis CI에서 `.travis.yml` 파일의 `script` 섹션이 없더라도 테스트 케이스가 자동으로 실행되고 결과를 보여주는 이유는 기본적으로 Travis CI가 일부 언어 및 프레임워크에 대해 자동으로 인식하여 테스트를 실행하도록 설정되어 있기 때문이다.
예를 들어, Python 프로젝트의 경우 기본적으로 Travis CI는 `python` 언어가 사용되고 있는 것을 감지하면 자동으로 `pip install -r requirements.txt`를 실행하고, `python`으로 시작하는 파일을 찾아 테스트를 실행한다.. 따라서 `script` 섹션을 명시하지 않아도 Travis CI가 이러한 과정을 자동으로 수행한다.
'┝ CI&CD' 카테고리의 다른 글
[ci] travis 란 (0) | 2023.07.24 |
---|---|
aws의 amplify을 사용한 사용자 인증 처리 (0) | 2023.07.10 |