2017-01-24 2 views
0

젠킨스에서 .Net 응용 프로그램을 만들고 Windows 서버에서 msbuild를 사용하여 ms 테스트 결과를 만드는 멀티 브랜치 파이프 라인에서 작업하고 있습니다. 같은 jenkinsfile을 작성했습니다.Jenkins multibranch 파이프 라인에있는 커밋 및 푸시 문제

이제 문제는 mstest 결과 파일을 커밋하여 git의 동일한 분기로 푸시해야한다는 것입니다. jenkinsfile에서 '박쥐'를 사용하여 동일한 작업을 시도했지만, Detached head state을 제공합니다. 아래는 jenkinsfile의 구성은 다음과 같습니다 -

node ('windows') { 


stage 'Checkout' 

     checkout scm 

    stage 'Build' 

     bat '"Path to MSBuild.exe" ProjectFile.proj' 

     bat '"Path to git.exe" add mstest/output.trx' 
     bat '"Path to git.exe" commit -am "adding test results"' 
     bat '"Path to git.exe" push origin Develop' 
} 

답변

0

호출 checkout scm는 항상 특정이 분리 된 HEAD 상태 및 결과 (최신의 시간로드 된 Jenkinsfile에서 나뭇 가지에 커밋) 커밋 체크 아웃. 다른 밀어 경우 누군가에,

bat "<path-to-git.exe> checkout ${env.BRANCH_NAME}"

분명히 : 특정 지점을 체크 아웃하고 나중에 변경 사항을 적용하려면

, 당신은 당신의 경우 어느처럼 보일 수 있습니다, 직접 자식을 사용할 수 있습니다 검사 후 지점으로 이동하지만 젠킨스가 테스트 결과를 푸시하기 전에이 접근법으로 인해 예기치 않은 동작이 발생할 수 있습니다. env.BRANCH_NAME은 파이프 라인이 실행중인 분기의 이름을 제공하는 Jenkins multibranch 프로젝트의 빌드 변수입니다.