문제

여러 호스트(예: Linux 및 Windows)에서 컴파일하고 실행해야 하는 코드를 개발하고 있다고 가정해 보겠습니다. 다음과 같은 경우 가장 효율적인 방식으로 이를 수행하는 방법은 무엇입니까?

  • 컴파일 중인 각 호스트의 하드웨어에 대한 전체 액세스 권한이 있습니다(제 경우에는 책상 위에 Linux 호스트와 Windows 호스트가 있습니다).
  • 네트워크 드라이브를 통한 구축은 비용이 너무 많이 듭니다.
  • 중앙 저장소에 대한 커밋이 필요하지 않습니다. 체크인하는 즉시 빌드를 시도하는 CI 엔진이 있다고 가정합니다.

"효율적"이란 컴파일-편집-실행 주기를 최대한 짧고 단순하게 유지하는 것을 의미합니다.

도움이 되었습니까?

해결책

다른 답변에 언급된 대부분의 빌드 서버는 버전 제어 시스템에서 변경 사항을 확인합니다.당신의 "중앙 저장소에 대한 커밋이 필요하지 않습니다." 요구사항이 있는 경우 Jetbrains를 사용해 보시기 바랍니다. 팀시티 CI 서버.

Visual Studio 및 Eclipse용 플러그인이 있으며 "개인 빌드", 변경 사항을 빌드 서버로 바로 보냅니다.각 프로젝트에 대해 다양한 요구 사항을 가진 여러 빌드 구성을 정의할 수 있습니다(OS는 가능한 요구 사항 중 하나입니다).빌드가 성공하면 플러그인에서 변경 사항을 커밋하라는 메시지를 표시합니다.

무료 버전은 3명의 에이전트를 지원하며 필요한 경우 더 구매할 수 있습니다.

Pulse에도 동일한 기능, 그러나 나는 그것에 대한 직접적인 경험이 없습니다.

다른 팁

제가 추천할 수 있는 가장 좋은 것은 'BuildBot'이라는 멋진 크로스 플랫폼 프로젝트입니다.

BuildBot은 소스 제어 시스템에 새 개정판을 확인할 때마다 지원하는 모든 플랫폼에서 자동으로 빌드가 발생하도록 할 수 있습니다.OSX, Linux(ubuntu), Linux(debian), Linux(Redhat), Vista, Windows XP 등에서 빌드하고 빌드가 실패할 경우 이메일을 보내거나 원하는 대로 보내도록 하세요.

빌드 프로세스의 일부로 테스트가 통과하면 바이너리를 게시할 수 있습니다.'야간' 또는 '최첨단' 빌드에 유용합니다.

다음은 일부 URL입니다.

우리는 그것을 발견 허드슨 강 필요에 따라 소스 제어에서 빌드를 수행할 수 있는 훌륭한 CI 서버입니다.Java로 작성되었으므로 선택한 대상 플랫폼에서 실행할 수 있으며 인터페이스는 웹 기반이므로 어디서나 제어할 수 있습니다.여러분이 하고 싶은 대부분의 작업을 수행할 수 있는 플러그인이 있으며 무엇보다도 무료입니다!

개발 상자로 하나의 머신을 선택하십시오.

정기적으로(매시간/매일/무엇이든) 소스 제어에서 자동으로 업데이트되도록 다른 하나를 설정하십시오.모든 빌드/테스트 실패는 일종의 경고 메시지를 보내야 합니다.(이메일, 메신저, 무엇이든).개발자가 아닌 상자에는 자체 트리 복사본이 있으므로 여전히 로컬로 빌드 중입니다.

실제 릴리스를 수행하기 전에 물론 인간 테스트를 수행하고 싶습니다.그러나 이것은 나머지 시간 동안 삶을 온전하게 유지합니다.

사용 http://ccache.samba.org 대규모 프로젝트에서 소수의 파일만 변경된 경우 컴파일 속도를 높이기 위해,

큰 변화가 발생한 경우 http://en.opensuse.org/Icecream 동시에 공유 분산 컴파일을 위해.

그러면 컴파일-편집-실행 주기가 크게 빨라질 것입니다.

CI를 사용하고 있으므로 이미 빌드 프로세스를 올바르게 설정했다고 가정합니다.우리가 하고 있는 일은 Windows 상자를 개발 시스템으로 사용하고 CI가 Solaris에서 실행되는 것입니다.이렇게 하면 코드가 여러 플랫폼에서 잘 컴파일됩니다.코드는 Java로 되어 있으며 기본 라이브러리를 사용하지 않으므로 코드가 작동할 것이라는 것이 보장됩니다.우리는 직장에서 Bamboo를 사용하고 있습니다. 훌륭하지만 무료는 아닙니다:-)

내 개인 프로젝트에서는 Continuum을 사용해 왔지만 Husdon은 깔끔해 보입니다. (한 번 사용해 보겠습니다.) Peter에게 감사드립니다.

이러한 작업을 위한 간단한 설정을 구축하는 것은 매우 간단합니다.
나는 제안할 것이다 시그윈 Windows 플랫폼에서 사용됩니다.이렇게 하면 Linux 및 Windows 플랫폼 모두에 대해 완전히 이식 가능한 소프트웨어/스크립트를 작성할 수 있습니다.당신이 프로젝트의 어느 단계에 있는지 명확하지 않지만, 당신이 단지 시작한다고 가정하면 나는 다음을 사용하는 것을 제안할 것입니다. 만들다 귀하의 소프트웨어를 구축합니다.cron을 사용하여 체크아웃/빌드 서클의 빈도를 예약할 수 있습니다.깨진 경우 빌드 로그가 포함된 이메일을 보낼 수도 있습니다.
상업용 소스와 오픈 소스 모두 준비된 일일 빌드 테스트가 많이 있습니다. Google에서 검색하거나 여기에 제안을 추가할 수도 있습니다.
우리는 해당 작업을 위해 집에서 만든 도구를 사용하고 있으므로 이미 만들어진 어떤 것도 제안할 수 없습니다.

좋아, 소스 제어 시스템을 사용하고 싶지 않다는 점을 놓쳤습니다(이상하지만 당신이 상사입니다 :)) 이 경우 체크아웃을 rsync로 바꾸면 다른 모든 것은 유사하게 유지됩니다.

하나의 옵션은 종속, 커밋 후가 아닌 서버에서 변경 사항을 "체크포인트"하여 모든 플랫폼에서 변경 사항을 테스트할 수 있습니다.

한 단어: 크루즈 (크루즈 컨트롤 아님) 매우 좋습니다.

두 명의 에이전트를 무료로 얻을 수 있으며 플랫폼당 하나의 에이전트를 얻을 수 있습니다.Mac과 PC에서 설정하는 데 말 그대로 몇 분이 걸리며, 제가 듣기로는 Linux에서도 그렇게 나쁘지는 않습니다.

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