ProgramingTip

Python 코드베이스를위한 보관 통합 시스템

bestdevel 2021. 1. 6. 20:54
반응형

Python 코드베이스를위한 보관 통합 시스템


저는 Python 코드베이스 를 사용하여 취미 프로젝트를 시작하고 지속적인 통합 형태를 설정하고 싶습니다 (예 : 체크인 할 때마다 테스트 케이스 배터리를 사용하여 책임감에게 잔소리 이메일을 보냅니다. 테스트에 실패 할 경우 사람) CruiseControl 또는 TeamCity 와 유사합니다 .

대부분의 VCS 에서 후크를 사용하여 작업을 수행 할 수있는 것이 좋습니다 테스트는 버전 제어 서버와 동일한 시스템에서 실행되어야합니다. Python 코드베이스에 작고 작고 사용자 "생각한 인 소스 연속 통합 시스템에 대한 제안"이 있습니까?


우리 는 직장에서 Buildbot-Trac을실행 합니다. 내 코드베이스가 아직 릴리스주기의 일부가 아니기 때문에 너무 많이 사용하지 않습니다. 하지만 우리는 다른 환경 (OSX / Linux / Win)에서 테스트를 실행하고 이메일을 보냅니다. 그리고 더 많이 작성되었습니다.


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

Hudson, Python 수용

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

( Update , 2011 년 9 월 : Jenkins 로 이름이 변경되었습니다 .)


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

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

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

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


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

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

Hudson은 전체 결과에서 테스트를 테스트하고 테스트로 드릴 다운하는 데 스위트 지원을 제공합니다. 또한 빌드 간 테스트 출력을 비교하는데 좋지만 분산 (마스터 / 슬레이브) 작업은 슬레이브를 자바 환경이 필요하기 때문에 복잡합니다. 또한 Hudson은 마스터와 슬레이브 사이의 업데이트 한 네트워크 링크에 대해 덜 용인합니다.

두 도구의 이점을 위해 일반적인 테스트가 수행됩니다. Hudson의 단일 인스턴스를 실행하는 다음 Buildbot으로 다중 플랫폼 회귀를 수행합니다.

다음은 인스턴스입니다.


우리는 trac과 통합 된 Bitten 을 사용하고 있습니다. 그리고 그것은 기능 기반입니다.


TeamCity에는 일부 Python 통합이 있습니다.

그러나 TeamCity는 다음과 가변적입니다.

  • 오픈 소스 아님
  • 작지 않고 기능이 풍부합니다.
  • 중소 팀에게는 무료입니다.

저는 작은 코드베이스를 위해 Travis-CI에 대해 아주 좋은 경험을 가지고 있습니다 . 주요 장점은 다음과 가변합니다.

  • 설정은 구성 파일 화면의 설정에서 수행됩니다.
  • 직접 설치하거나 무료 호스팅 버전을 사용할 수 있습니다.
  • github 저장소에 대한 반자동 설정
  • 웹 사이트에 계정이 필요하지 않습니다. github를 통해 로그인

몇 가지 제한 사항 :

  • Python은 1 급 언어로 지원되지 않습니다 (작성에는 pip 및 apt-get을 사용할 수 있습니다. 이 안내 참조 )

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

참조 URL : https://stackoverflow.com/questions/535/continuous-integration-system-for-a-python-codebase

반응형