CruiseControl.NET 서버 1.5.0.4401이 실행 중입니다. 하나의 프로젝트는 exec-task를 통해 포함 된 외부 컴파일러를 사용합니다. 이 컴파일러는 아티팩트 디렉토리에있는 텍스트 파일에 출력을 작성하도록 구성됩니다. 이 파일의 구성은 % ccnetartifactdirectory % \ keil_ % ccnetlabel % .txt와 비슷하지만 파일 이름은 keil_Revision-x.txt (x는 개정 번호)입니다.빌드 출력을 첨부 파일로 포함합니다.
이 출력 파일을 CC가 각 빌드에 대해 보내는 전자 메일 보고서에 첨부하려고합니다. 이메일 발행인의 구성은 (조금 단축) 다음이다 :
<email from="[email protected]" mailhost="zzz" mailport="25" includeDetails="TRUE" useSSL="FALSE">
<users>
<!-- Here are some users -->
</users>
<groups>
<!-- Here are some groups -->
</groups>
<converters>
<!-- LDAP converter-->
</converters>
<modifierNotificationTypes>
<!-- Several notification types -->
</modifierNotificationTypes>
<subjectSettings>
<!-- Here are some subject settings -->
</subjectSettings>
<attachments>
<file>${CCNetArtifactDirectory}\keil_${CCNetLabel}.txt</file>
</attachments>
</email>
유일한 문제는 파일이 첨부되지 않는다는 것이다. 크루즈 컨트롤 콘솔의 디버그 출력에는 오류 메시지가 없습니다. 이슈 디렉토리에는 모든 파일이 포함되며 첨부되지 않습니다. 실패한 부분은 어디입니까?
우리는 1.5.0을 실행 중이며이 파일에 올바르게 레이블을 지정하고 이슈 디렉토리 통합 속성에 저장하는 한 제대로 작동하는 것 같습니다. 포함 세부 정보는 이미 TRUE로 설정되어 있습니다. 내 개인적인 의심은 괄호 $ []가 잘못되었다는 것입니다. 그러나 $ []도 $ {}도 그 일을하지 않는 것 같습니다. – PVitt
내가 말했듯이 : $ {CCNetLabel}은 전혀 작동하지 않습니다.이 시점에서 1.5가 1.4.4처럼 동작한다고 가정했습니다. 통합 등록 정보는 CCNET 구성 내에서 액세스 할 수 없습니다. 그 목적을 위해 자체 선행 처리 상수를 정의해야합니다. –
좋아, 다음 문제가 있습니다. 일반적인 파일 이름 (예 : keil.txt를 사용하면 CruiseControl이 해당 파일을 열고 덮어 쓰지 않도록 파일을 닫지 않습니다. 바로이 때문에 파일 이름에 CCNetLabel을 넣을 수 있습니다. 아마도 내가 CC에 대한 버그로이 열린/가까운 것을 등록해야합니다. – PVitt