문제

나는 취미 프로젝트를 시작하고 있다. 파이썬 코드베이스가 있으며 어떤 형태로든 지속적인 통합(예:체크인할 때마다 일련의 테스트 케이스를 실행하고 테스트가 실패하면 담당자에게 잔소리 이메일을 보냅니다.) 크루즈 컨트롤 또는 팀시티.

나는 대부분의 경우 후크를 사용하여 이 작업을 수행할 수 있다는 것을 알고 있습니다. VCS, 그러나 이를 위해서는 버전 제어 서버와 동일한 시스템에서 테스트를 실행해야 하는데 이는 내가 원하는 것만큼 우아하지 않습니다.소규모의 사용자 친화적인 오픈 소스 지속적 통합 시스템에 대한 제안이 있는 사람이 있습니까? 파이썬 코드베이스?

도움이 되었습니까?

해결책

우리는 달린다 빌드봇 - Trac 직장에서.내 코드베이스가 아직 릴리스 주기에 포함되지 않았기 때문에 나는 그것을 너무 많이 사용하지 않았습니다.하지만 우리는 다양한 환경(OSX/Linux/Win)에서 테스트를 실행하고 이메일을 보냅니다. 그리고 Python으로 작성되었습니다.

다른 팁

한 가지 가능성은 허드슨입니다.Java로 작성되었지만 Python 프로젝트와 통합되어 있습니다.

허드슨, 파이썬을 수용하다

그러나 나는 그것을 직접 시도한 적이 없습니다.

(업데이트, 9월2011년:상표권 분쟁 이후 허드슨(Hudson)으로 개명 젠킨스.)

두 번째는 Buildbot - Trac 통합입니다.통합에 대한 자세한 내용은 다음에서 확인할 수 있습니다. 빌드봇 웹사이트.이전 직장에서 우리는 그들이 언급한 플러그인(tracbb)을 작성하고 사용했습니다.플러그인이 하는 일은 Trac 내에서 Buildbot을 사용할 수 있도록 모든 Buildbot URL을 다시 작성하는 것입니다.(http://example.com/tracbb).

Buildbot의 정말 좋은 점은 구성이 Python으로 작성된다는 것입니다.자신의 Python 코드를 구성에 직접 통합할 수 있습니다.특정 작업을 실행하기 위해 자체 BuildStep을 작성하는 것도 매우 쉽습니다.

BuildSteps를 사용하여 SVN에서 소스를 가져오고, 종속성을 가져오고, 테스트 결과를 WebDAV에 게시하는 등의 작업을 수행했습니다.

빌드 결과와 함께 신호를 보낼 수 있도록 X10 인터페이스를 작성했습니다.빌드가 실패했을 때 우리는 붉은 라바 램프를 켰습니다.빌드가 성공하면 녹색 라바 램프가 켜졌습니다.좋은 시간 :-)

우리는 Jython 개발을 위해 Buildbot과 Hudson을 모두 사용합니다.둘 다 유용하지만 장단점이 다릅니다.

Buildbot의 구성은 순수 Python이며 일단 익숙해지면 매우 간단합니다(최신 정보는 epydoc 생성 API 문서 참조).Buildbot을 사용하면 테스트 외 작업을 더 쉽게 정의하고 테스터를 배포할 수 있습니다.그러나 실제로는 개별 테스트에 대한 개념이 없고 텍스트, HTML 및 요약 출력만 있으므로 다단계 탐색 가능한 테스트 출력 등을 원할 경우 직접 빌드하거나 Hudson을 사용해야 합니다.

Hudson은 전체 결과에서 테스트 스위트 및 개별 테스트로 드릴다운하는 데 탁월한 지원을 제공합니다.또한 빌드 간의 테스트 출력을 비교하는 데에도 유용하지만 분산(마스터/슬레이브) 작업은 슬레이브에도 Java 환경이 필요하기 때문에 비교적 더 복잡합니다.또한 Hudson은 마스터와 슬레이브 간의 불안정한 네트워크 링크에 대해 덜 관대합니다.

따라서 두 도구의 이점을 모두 활용하기 위해 일반적인 테스트 실패를 포착하는 Hudson의 단일 인스턴스를 실행한 다음 Buildbot을 사용하여 다중 플랫폼 회귀를 수행합니다.

우리의 사례는 다음과 같습니다.

우리는 사용하고 있습니다 물린 trac과 통합되어 있습니다.그리고 파이썬 기반입니다.

TeamCity에는 Python이 있습니다. 완성.

하지만 TeamCity는 다음과 같습니다.

  • 오픈소스가 아닌
  • 작지는 않지만 기능이 풍부합니다.
  • 중소 규모 팀에게는 무료입니다.

나는 아주 좋은 경험을 가지고 있습니다 트래비스-CI 더 작은 코드 기반의 경우.주요 장점은 다음과 같습니다.

  • 구성 파일 화면의 절반도 안 되는 시간에 설정이 완료됩니다.
  • 직접 설치하거나 무료 호스팅 버전을 사용할 수 있습니다.
  • Github 리포지토리에 대한 반자동 설정
  • 웹사이트에는 계정이 필요하지 않습니다.github을 통해 로그인

몇 가지 제한사항:

  • Python은 일류 언어로 지원되지 않습니다(작성 ​​시점 기준).하지만 pip와 apt-get을 사용하여 Python 종속성을 설치할 수 있습니다.보다 이 튜토리얼)

  • 코드는 github에서 호스팅되어야 합니다(적어도 공식 버전을 사용하는 경우).

라이센스 : CC-BY-SA ~와 함께 속성
제휴하지 않습니다 StackOverflow
scroll top