Travis CI의 기능과 사용시기 이해


86

저는 Git을 처음 접했고 GitHub에서 작은 오류를 발견 한 후 일부 오픈 소스 프로젝트에 기여할 계획입니다. 그것을 포크하고 오류를 수정했을 때 풀 요청을 의도했으며 다음과 같은 내용이 표시되는 것을 알았습니다.

실패 — Travis CI 빌드에 실패했습니다.

세부 정보를 살펴보면 Could not find .travis.ymlTravis Cl에 로그인하지 않고 저장소에 .travis.yml을 추가하지 않았기 때문에.

Travis와 이것이 지속적인 통합으로 알려진 것에 대해 처음 들었습니다. 그리고 그것은 꽤 멋져 보이기 때문에 그것에 대해 더 배우기 위해 Wikipedia에서 찾아 보았습니다.

Travis CI는 GitHub에서 호스팅되는 프로젝트를 빌드하고 테스트하는 데 사용되는 호스팅되고 분산 된 지속적 통합 서비스입니다. Travis CI는 커밋이 이루어지고 Travis CI를 사용하는 GitHub 저장소로 푸시되는시기를 자동으로 감지하며, 이러한 일이 발생할 때마다 프로젝트 빌드 를 시도하고 테스트를 실행합니다 . 여기에는 마스터 브랜치뿐만 아니라 모든 브랜치에 대한 커밋이 포함됩니다.

Travis CI에 대한 나의 현재 이해는 그것이하는 일이 자동으로 프로젝트를 추진하고 있으며 git commit -am ".."그 일부를 이해하지 못한다는 것입니다.

  1. 프로젝트빌드하고 테스트를 실행 하면 어떤 테스트를 실행할까요? 그리고 프로젝트를 어떻게 "구축"할 것인가? (바이너리로 컴파일하는 것과 같이?)

  2. "여기에는 모든 브랜치에 대한 커밋이 포함됩니다"라고 표시되어 있지만 모든 브랜치에 커밋하지 않으려면 어떻게해야합니까?

  3. Travis Cl을 전혀 사용하지 않아도 괜찮습니까? 어떤 상황에서 사용하는 것이 가장 좋습니까 (또는 사용해야합니까)?

답변:


104

Travis CI를 설명하는 가장 간단한 방법은 GitHub에 커밋 할 때마다 프로그램의 테스트를 실행하는 것입니다 (여러 가지 방법으로 구성 할 수 있으며 항상 일부 브랜치에서 빌드를 비활성화 할 수 있음). 이것의 요점은 커밋이 무언가를 깨 뜨렸을 때 매우 빠르게 발견하고 문제가되기 전에 고칠 수 있다는 것입니다. 단위 테스트가 있고 Travis CI에서 지원하는 프로그래밍 언어를 사용하는 모든 GitHub 저장소에서 Travis CI를 실행하는 것이 좋습니다. Travis CI를 설정하는 것은 매우 쉽기 때문에 프로그램에서 테스트를 통과했는지 여부에 상관하지 않는 한 일반적으로 사용하지 않는 좋은 이유가 없습니다. 더 궁금한 점이 있으면 댓글을 남겨주세요. 여기에서 Travis CI에 대해 자세히 알아볼 수 있습니다 .


1
오픈 소스 프로젝트의 경우 "무료"라고 말하지만 처음 100 개의 빌드는 무료라고합니다. 그럼 ... 무료가 아니에요? 혼자서 개발하더라도 100 개의 빌드를 매우 빠르게 얻을 수있었습니다. 내가 잘못 읽고 있습니까? 어디에서도 정보를 찾을 수 없습니다. @ joshua-anderson
Mark Pieszak-Trilon.io 2015 년

2
오픈 소스 프로젝트에서는 항상 무료입니다. 비공개 리포지토리의 경우 유료 플랜에 가입하기 전에 100 개의 무료 빌드를받습니다.
조슈아 - 앤더슨

일반적인 git 워크 플로가 최신 커밋을 가져와 로컬로 병합하고 테스트 한 다음 원격으로 푸시하지 않습니까?

Angular, React 또는 Vue 용 CLI 도구로 웹 개발을하는 사람들은 어떻습니까? 프레임 워크는 개발 서버를 실행할 때 즉각적인 트랜스 파일 및 테스트 피드백을 제공합니다. 그것과 Travis CI 사이에 차이점이 있습니까? 아니면 일반적으로 CI를 커밋하고 사용하기 전에 단위 테스트를 실행하는 것 사이에 말해야합니까?
OzzyTheGiant

따라서 travis는 말이되지 않습니다. git commit hooks와 test 명령에서 오류를 반환하는 블록 푸시를 사용하여 쉽게 travis를 삭제할 수 있습니다.
betoharres

16

Travis-CI가 무엇인지 이미 알게되었으므로 저는 직접 질문을하겠습니다.

프로젝트를 빌드하고 테스트를 실행하면 어떤 테스트가 실행됩니까? 그리고 프로젝트를 어떻게 "구축"할 것인가? (바이너리로 컴파일하는 것과 같은?)

에서 .travis.yml파일 당신은 당신의 OS, 프로그래밍 언어, REPO 지점, 프로젝트 파일 이름 및 기타 세부 사항을 지정하고 있습니다. 이 파일을 읽으면 Travis-CI는 서버에 설치된 특정 컴파일러를 사용하여 코드를 컴파일합니다. 아마도 그들은 Github와 동일한 메커니즘을 가질 것입니다. 처음으로 그들은 코드를 가져올 수 있습니다 [특정 분기를 지정한 경우 해당 분기에서만 코드를 가져올 수 있습니다]. 또한 Travis-CI로 계정 사용을 인증했으며 커밋 할 때마다 Travis-CI 서버에 몇 가지 알림이 발생하여 커밋으로 인식되고 컴파일을 시작합니다.


"여기에는 모든 브랜치에 대한 커밋이 포함됩니다"라고 표시되어 있지만 모든 브랜치에 커밋하지 않으려면 어떻게해야합니까?

다른 분기 또는 분기를 지정할 수 있습니다 master. 그리고 .travis.yml파일에 지정된 특정 분기 만 컴파일해야 합니다.


Travis Cl을 전혀 사용하지 않아도 괜찮습니까? 어떤 상황에서 사용하는 것이 가장 좋습니까 (또는 사용해야합니까)?

예, 괜찮습니다. 큰 문제는 아닙니다. 하지만 이처럼 쉽게 통합 할 수있는 엔진을 리포지토리에 사용하지 않으면 어떤 이점을 놓칠 수 있습니까? 커밋 할 때마다 무언가를 놓칠 수 있고 코드 때문에 컴파일 할 수 없습니다. 어떻게 알 수 있습니까? 따라서 Travis-CI를 사용해야합니다.


Travis-CI, Continuous Integrations 및 Travis-CI를 Github Repo와 연결하는 방법을 알기 위해 읽을 수 있는 블로그 게시물 을 작성했습니다 . Swift 저장 소용으로 작성했습니다.


2

현재 Travis CI를 배우는 중이므로 질문에 답할 수있는 좋은 위치에 있다고 생각합니다. 처음에 직면 한 첫 번째 문제는 기여하는 프로젝트가 Travis CI를 사용하여 프로젝트를 테스트하고 빌드하기 때문입니다. 프로젝트가 Travis CI를 사용하지 않는다면 그러한 오류가 발생하지 않았을 것입니다.

솔루션은 Travis CI 웹 사이트 를 확인하고 작동 방식과 작업중인 프로젝트에 어떤 영향을 미치는지 알아 보는 것입니다. 이렇게하면 코드에서 무엇이 실패하고 어떻게 수정하는지 이해할 수있는 매우 좋은 위치에 놓이게됩니다.

프로젝트 구축에 대한 첫 번째 질문에 답하기

프로젝트를 빌드하고 테스트를 실행하면 어떤 테스트가 실행됩니까? 그리고 프로젝트를 어떻게 "구축"할 것인가? (바이너리로 컴파일하는 것과 같은?)

사용 / 테스트 전에 소스 코드가 어떻게 처리되는지를 의미합니다. 작성하는 언어에 따라 다릅니다. 예를 들어 프로젝트가 PHP로 작성중인 경우. 내 코드를 C / C ++ 소스 코드와 같은 실행 파일로 빌드하지 않습니다. PHP 인터프리터에서 내 PHP 코드를 실행하고 테스트합니다. 선호하는 언어가 거치는 정상적인 컴파일 과정을 거치게됩니다.

당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.