페이지

2011년 1월 25일 화요일

Quickbuild proof build

Quickbuild 3.0 대에 보면 proof build라는 기능이 있다. 변경된 코드를 체크인 하기전에 build grid에서 빌드해서 일정 조건-빌드 성공 혹은 테스트까지 성공-을 만족하면 서브밋되게 하는 기능이 되겠다.

빌드에러는 작은 규모의 프로젝트에서는 뭐 그리 문제가 될게 있나 쉽겠지만 큰 규모의 소프트웨어를 개발할때는 충분히 문제가 될 수 있다. 몇백명의 개발자들이 하루에 한번 이상 체크인을 한다고 하면 여러 디펜던시 혹은 실수로 빌드에러를 유발할 수 있기 때문이다. 그래서 CI에서 계속 빌드에러가 나는 현상이 반복되고 장기화 될때 proof build를 적용하는 것도 한 방법이 될 수 있다.

실제 우리팀의 경우도 빌드에러가 좀처럼 잡기 힘든 것이 되어버려서 이번에 이것을 도입하게 되었다.

how to 는 이미 user guide에 잘 나와 있으니 여기서 별도로 설명은 안해도 될것 같고 어떻게 proof build가 이루어지는 그 흐름을 보면 도움이 된다.

  1. 로컬에서 변경한 파일(델타)들을 build agent로 전달. 개발자가 설치한 User Agent가 이기능을 한다.

  2. build agent에서는 latest sync후 델타를 적용 빌드를 한후 그 결과를 User Agent에게 전달한다.

  3. 성공이면 user agent에서 델타를 submit한다.

  4. 실패면 피드백을 준후 submit하지 않는다.

댓글 2개:

  1. 안녕하세요? QuickBuild에 Perforce를 연동시키고, Proof Build 기능을 활용하려고 컴터를 쎄팅하고 있는데,

    Perforce 세팅을 위한 Editing Repository 항목중
    Client Specification을 input client specification으로 놓았는데, view를 뭐로 해야 할지 도통 모르겠어요.

    client name을 쓰라고 하는것 같은데 이름관련된것을 다 넣어봐도 invalid mapping line이라고 나오네요...
    밑에 힌트로는 Specify view of the client, any client name can be used in the mapping and it will be replaced with the actual client name determined by QuickBuild at build time. 라고 나오는데, 딱히 도움이 안되서 구글링 하고 있는데 아직까지 소득이 없네요... 4.0.59버전이라 pmease에서 제공하는 documentation이랑도 약간 상이해서 애먹고 있습니다. 혹시 어떤것을 넣어야 할지 감이 오시나요...?

    답글삭제
    답글
    1. 안녕하세요. 우선 질문하신것에 대한 답을 드려요.

      cline name은 perforce의 cline name을 쓰라는 것인데요. QB가 client specification대로 perforce의 client을 만드는때 이 clinet의 이름을 물어보는 것입니다.

      client specification은 depot path mapping인데요.예를 들면 이런것입니다.
      //depot/test/... //MYCLIENT/test/...

      삭제