Travis CI
1. 개요
Travis CI는 소프트웨어 프로젝트의 지속적인 통합 및 지속적인 제공을 위한 서비스이다. 저장소의 루트 디렉토리에 `.travis.yml` 파일을 추가하여 구성하며, 이 파일은 프로그래밍 언어, 빌드 및 테스트 환경 등을 지정한다. GitHub와 연동되어 커밋 푸시 또는 풀 리퀘스트 시 빌드를 실행하고, 테스트 결과를 개발자에게 알린다. 다양한 운영 체제 및 프로그래밍 언어를 지원하며, 코드 커버리지 분석과 같은 외부 도구와의 통합도 가능하다. 2011년 독일 베를린에서 설립되었으며, 2019년 Idera, Inc.에 인수되었다. 2020년 11월, travis-ci.org를 travis-ci.com으로 통합하면서 오픈 소스 계정의 무료 지원을 중단했다.
| 유형 | 지속적 통합 서비스 |
|---|---|
| 개발사 | Idera |
| 프로그래밍 언어 | 루비 |
| 플랫폼 | 웹 |
| 라이선스 | 독점 라이선스 |
| 웹사이트 | Travis CI 공식 웹사이트 |
| 지원 버전 관리 시스템 | GitHub 비트버킷 |
|---|
-
지속적 통합 -
젠킨스 (소프트웨어)
젠킨스는 소프트웨어 개발 프로세스 자동화를 위한 오픈 소스 CI/CD 도구로, 플러그인을 통해 기능을 확장할 수 있으며 빌드, 테스트, 배포 등 다양한 기능을 제공하여 개발 생산성 향상에 기여하는 가장 널리 사용되는 도구 중 하나이다. -
지속적 통합 -
애저 데브옵스 서버
애저 데브옵스 서버는 팀 파운데이션 서버에서 시작하여 변경된 마이크로소프트의 온-프레미스 데브옵스 솔루션으로, 다중 계층 아키텍처를 기반으로 작업 항목, 소스 제어, 보고 기능, 팀 빌드, 릴리스 관리 등의 기능을 제공한다. -
루비로 작성된 자유 소프트웨어 -
루비 온 레일즈
루비 온 레일즈는 데이비드 헤이네마이어 한손이 개발한 MVC 아키텍처 기반의 웹 애플리케이션 프레임워크로, "설정보다 관례"와 "반복 금지" 원칙을 핵심 철학으로 삼아 다양한 웹 서비스 개발에 사용되며 다른 프레임워크에 영향을 주었다. -
루비로 작성된 자유 소프트웨어 -
마스토돈 (소프트웨어)
마스토돈은 ActivityPub 표준을 사용하여 서버 간 통신을 구현하는 분산형 소셜 네트워크 소프트웨어이며, 공개, 비공개 등 다양한 개인 정보 보호 기능을 제공하고 Affero GPL 라이선스 하에 자유 및 오픈 소스로 배포된다. -
공식 웹사이트에 알 수 없는 변수를 사용한 문서 -
브루클린 미술관
브루클린 미술관은 1823년 브루클린 견습생 도서관으로 시작하여 현재 약 50만 점의 소장품을 보유한 뉴욕 브루클린 소재의 미술관으로, 다양한 분야의 예술 작품을 전시하며 특히 아프리카 미술과 여성주의 미술에 대한 기여가 크다. -
공식 웹사이트에 알 수 없는 변수를 사용한 문서 -
광주지방기상청
광주지방기상청은 광주광역시와 전라남도 지역의 기상 예보, 특보, 관측, 기후 정보 제공 등의 업무를 수행하는 기상청 소속 기관으로, 1949년 광주측후소로 설치되어 1992년 광주지방기상청으로 개편되었으며, 기획운영과, 예보과, 관측과, 기후서비스과와 전주기상지청, 목포기상대를 두고 있다.
2. 설정
Travis CI는 저장소의 루트 디렉토리에 `.travis.yml`이라는 이름의 파일을 추가하여 구성한다. 이 파일은 YAML 형식의 텍스트 파일이다. 이 파일은 사용된 프로그래밍 언어, 원하는 빌드 및 테스트 환경(소프트웨어를 빌드하고 테스트하기 전에 설치해야 하는 종속성을 포함) 및 다양한 기타 매개변수를 지정한다.
3. 운영
Travis CI는 특정 저장소에 대해 활성화되면 GitHub에 새로운 커밋이 푸시되거나 풀 리퀘스트가 제출될 때마다 이를 알린다. 특정 브랜치 또는 특정 패턴과 일치하는 이름을 가진 브랜치에 대해서만 실행되도록 구성할 수도 있다. 그러면 Travis CI는 관련 브랜치를 체크아웃하고 '.travis.yml'에 지정된 명령을 실행하며, 일반적으로 소프트웨어를 빌드하고 자동화된 테스트를 실행한다. 해당 프로세스가 완료되면 구성된 방식으로 개발자에게 알린다. 예를 들어 테스트 결과(성공 또는 실패 표시)가 포함된 이메일을 보내거나 IRC 채널에 메시지를 게시하는 방식이다.
Travis CI는 다양한 소프트웨어가 설치된 다양한 머신(예: 호환성 테스트를 위한 프로그래밍 언어 구현의 이전 버전)에서 테스트를 실행하도록 구성할 수 있다.
C, C++, C#, Clojure, D, Erlang, F#, Go, Groovy, Haskell, Java, JavaScript, Julia, Perl, PHP, Python, R, Ruby, Rust, Scala, Visual Basic 등 다수의 언어를 지원한다. Plone, Ruby on Rails, 루비, Node.js와 같은 저명한 오픈 소스 프로젝트에 채택되었으며, 2013년 2월 시점에서 8056개 이상의 JavaScript 프로젝트가 사용하고 있다.
3.1. 지원 아키텍처
Travis CI 빌드에서 사용되는 기본 CPU 아키텍처는 `amd64`이다. `arch` 키가 없을 때 이 아키텍처가 사용된다. 빌드 작업이 어떤 CPU 아키텍처에서 실행되는지는 GUI를 통해 확인할 수 있다.
* 빌드 작업 목록에는 `arch` 태그 값을 기반으로 특정 레이블과 아키텍처 이름이 표시된다.
* 빌드 작업 보기에서는 운영 체제 식별자 근처에 동일한 특정 레이블이 표시된다.
| 아키텍처 | 오픈 소스 | 상업용 |
|---|---|---|
| amd64 | 예 | 예 |
| ppc64le | 예 | 아니요 |
| s390x | 예 | 아니요 |
| arm64 (v8) | 예 | 아니요 |
| arm64-graviton2 (v8) | 예 | 예 |
LXD 컨테이너 내에서는 여러 CPU 아키텍처 기반 빌드에서 도커를 사용하는 것이 가능하다. 기본적으로 특정 CPU 아키텍처를 준수하는 도커 이미지가 필요하거나, 빌드에 필요한 관련 라이브러리가 `Dockerfile`에 추가되었는지 확인해야 할 수 있다.
3.2. 알림
Travis CI가 특정 저장소에 대해 활성화되면, GitHub는 새로운 커밋이 해당 저장소에 푸시되거나 풀 리퀘스트가 제출될 때마다 이를 알린다. 특정 브랜치 또는 특정 패턴과 일치하는 이름을 가진 브랜치에 대해서만 실행되도록 구성할 수도 있다. 그러면 Travis CI는 관련 브랜치를 체크아웃하고 '.travis.yml'에 지정된 명령을 실행하며, 일반적으로 소프트웨어를 빌드하고 자동화된 테스트를 실행한다. 해당 프로세스가 완료되면 Travis는 구성된 방식으로 개발자에게 알린다. 예를 들어 테스트 결과(성공 또는 실패 표시)가 포함된 이메일을 보내거나 IRC 채널에 메시지를 게시하는 방식이다. 풀 리퀘스트의 경우, GitHub 통합을 사용하여 풀 리퀘스트에 결과와 빌드 로그 링크가 주석으로 표시된다.
4. 통합
커버리지 분석이나 정적 분석 등을 수행하는 외부 도구를 이용할 수 있다.
5. 회사
이 회사는 독일 베를린에 본사를 두고 있으며, 2011년에 설립되었다. 2012년에 이 프로젝트는 상당한 성장을 경험했으며 수십 개의 기술 회사들이 후원한 추가 개발 자금을 조달하기 위해 크라우드 펀딩 캠페인을 시작했다. 2019년 3월, Travis CI 인프라는 3월 27일부터 3월 29일까지 대규모 정전을 겪었다. 2020년 3월, Travis CI는 Montana Mendy가 작성한 일반적인 사용 사례에 대한 튜토리얼이 포함된 '요리책'을 소개했다.
5.1. 요금 정책 변화와 오픈 소스 지원 논란
2019년 1월, Idera, Inc.에 인수되었다.
2020년 11월, Travis CI는 travis-ci.org를 2020년 12월 31일까지 폐쇄하고, 기존 및 신규 계정 모두 travis-ci.com으로 마이그레이션한다고 발표했다. "travis-ci.com에서 오픈 소스 계정을 완전히 무료로 유지하겠다"는 공식 약속에도 불구하고, 오픈 소스 프로젝트들은 빌드 작업이 중단되었다고 보고했다. Travis CI는 더 이상 오픈 소스 계정에 대해 무료가 아니며, 유료 기능을 평가하기 위한 "30일 동안 사용할 수 있는 10,000 크레딧"의 갱신 불가 가입 보너스만 제공한다.