2009-12-22 3 views
6

이상한 질문입니다. 우리는 사내 작성된 많은 유틸리티를 자동으로 실행해야합니다. 이들은 이 아니고 빌드 작업입니다. 그냥 실행 SendOutHourlyEmailAlarms.exe, KeepFoldersInSynch.exe과 같은 것들. 필자는 일반적으로 이러한 작업을 간단한 예약 작업/AT 명령 (또는 일정보다 세분화 된 제어가 필요한 경우 Windows 서비스)으로 설정하지만 동료는 CruiseControl에서 여러 가지 프로젝트를 빌드하여 이러한 작업을 설정했습니다. NET 서버. 나는 그가 왜 이렇게 설정했는지 물었고 실행 (및 로그, 반환 값, 예외 발생)은 모두 추적되고 기록되었으며이 정보는 빌드 서버 웹 사이트의 구성 인터페이스를 통해 액세스 할 수있었습니다. 나는 이것에 대해서 논쟁 할 수 없었다.CruiseControl.NET을 사용하여 소스를 작성하는 것과 관련이없는 작업을 처리해야합니까?

하지만이 냄새는 내가 확실히 식별 할 수없는 냄새가 있습니다. 이것은 CruiseControl.NET의 적절한 사용입니까? 그렇지 않다면 위험은 무엇입니까? 법안에 맞을지라도 이런 유형의 제품에 더 적합한 다른 제품이 없습니까?

+0

나는 CC.NET을 사용할 때의 이점을 좋아한다. 비 빌드 및 빌드 작업을 혼합하는 것에 대한 반대 의견을 얻으려면 이러한 비 빌드 작업에 대해 별도의 CC.NET 인스턴스를 배포하는 것이 좋습니다. – hitec

답변

6

동료와 동일한 이유로 모든 빌드되지 않은 작업이 있습니다. 실행해야 할 모든 작업을 한 곳에서 찾아야합니다. 우리의 CC.NET 프로젝트의

몇 가지 예 : 원격 QA

  • 만들기 소스 코드 문서에

    • FTP의 설치

    • VM의 가에 품질 보증을 위해 설치 한 설치로 만들기 아침

    • 보관 설치 자

    나는 한 번 이상 손으로해야 할 일은 거의 없다. 프로젝트가된다. 이럴 (IMHO) 그것은 또 하나의 다른 이유로 예정된 일보다 훨씬 낫다. 설정 파일은 소스 컨트롤에 있으므로 조정할 곳이 1 곳 있습니다. 우리는 여러 서버에 로그인하여 조정하거나 어떤 서버가 그렇게했는지 궁금하지 않습니다.

  • +0

    이러한 작업 중 하나의 실제 실행이 빌드 서버 (예 : 데이터베이스 서버의 대량로드, 특정 드라이버가있는 유일한 머신에서 실행 중)와 다른 상자에 있어야하는 경우에는 거기에 우아한 해결책이 있습니다 ? 또는 빌드 상자에서 직접 실행할 수있는 실행 파일에만 해당됩니까? –

    +0

    Bamboo 및 Remote 에이전트에서이 작업을 정확하게 수행합니다. 그것은 정말 잘 작동합니다. – leonm

    +0

    우리는 수십 개의 서버를 가지고 있습니다. 일반적으로 이러한 유형의 것은 비 구축 서버에서 수행됩니다. 웹 대시 보드는 많은 서버를 가리킬 수 있으므로 중요하지 않습니다. – Alex

    1

    도구가 특정 문제를 해결하기 위해 설계 되었기 때문에 원래 도구 작성자가 concieved 한 범위 밖에서 유사한 문제를 해결할 때 동등한 기능을 갖지는 않습니다. CruiseControl.NET이 이러한 문제를 잘 해결하면 절대적으로 적절한 도구입니다.

    2

    나는 당신의 동료가 좋은 논쟁을했다고 생각합니다. 이러한 작업이 개발 프로세스와 관련이있는 경우 프로젝트를 CruesControl.Net에 배치하면됩니다. 나는 생산 프로세스를 실행하기 위해 개발 서버를 활용하면서 그 선을 그릴 것이다. "유일한 도구가 망치라면, 모든 문제를 손톱으로 보는 경향이 있습니다."라고해도 망치가 많은 문제를 해결할 능력이 없다는 것은 아닙니다.

    +0

    나는 서버/생산 공정 각도를 세우는 것이 "냄새"로 치게 된 것이라고 생각합니다. –

    관련 문제