2017-03-31 2 views
1

를 인쇄하지 않습니다 Jenkinsfile젠킨스 파이프 라인은 내가 메이크가 전체 로그

node { 
    stage 'Checkout' 
    checkout scm 

    stage 'test' 
    catchError { 
    wrap([$class: 'AnsiColorBuildWrapper', 'colorMapName': 'XTerm']) { 
     sh 'make test' 
    } 
    } 
    step([$class: 'Mailer', 
     notifyEveryUnstableBuild: true, 
     recipients: emailextrecipients([[$class: 'CulpritsRecipientProvider'], 
             [$class: 'RequesterRecipientProvider']])]) 
} 

그것은 잘 작동과 함께

.PHONE: test 
REMOVE_IMG_ON_FAIL=true 
REMOVE_IMG_WHEN_DONE=true 
DOCKER_OPTS = --rm -t 
test: test-ubuntu14 test-ubuntu16 test-centos6 test-centos7 

test-ubuntu14: 
     $(eval ID:=$(shell docker build -f tests/Dockerfile-ubuntu14.04 . | tee /dev/stderr | awk 'END {print $$NF}')) 
     docker run ${DOCKER_OPTS} -v ${PWD}/tests/hosts:/etc/hosts ${ID} \ 
       /ansible-role-this/tests/test.sh || { ${REMOVE_IMG_ON_FAIL} && docker rmi ${ID} && exit 1 ; } 
     { ${REMOVE_IMG_WHEN_DONE} && docker rmi ${ID} ; } || true 

test-ubuntu16: 
     $(eval ID:=$(shell docker build -f tests/Dockerfile-ubuntu16.04 . | tee /dev/stderr | awk 'END {print $$NF}')) 
     docker run ${DOCKER_OPTS} -v ${PWD}/tests/hosts:/etc/hosts ${ID} \ 
       /ansible-role-this/tests/test.sh || { ${REMOVE_IMG_ON_FAIL} && docker rmi ${ID} && exit 1 ; } 
     { ${REMOVE_IMG_WHEN_DONE} && docker rmi ${ID} ; } || true 

test-centos6: 
     $(eval ID:=$(shell docker build -f tests/Dockerfile-centos6 . | tee /dev/stderr | awk 'END {print $$NF}')) 
     docker run ${DOCKER_OPTS} -v ${PWD}/tests/hosts:/etc/hosts ${ID} \ 
       /ansible-role-this/tests/test.sh || { ${REMOVE_IMG_ON_FAIL} && docker rmi ${ID} && exit 1 ; } 
     { ${REMOVE_IMG_WHEN_DONE} && docker rmi ${ID} ; } || true 

test-centos7: 
     $(eval ID:=$(shell docker build -f tests/Dockerfile-centos7 . | tee /dev/stderr | awk 'END {print $$NF}')) 
     docker run ${DOCKER_OPTS} -v ${PWD}/tests/hosts:/etc/hosts ${ID} \ 
       /ansible-role-this/tests/test.sh || { ${REMOVE_IMG_ON_FAIL} && docker rmi ${ID} && exit 1 ; } 
     { ${REMOVE_IMG_WHEN_DONE} && docker rmi ${ID} ; } || true 

을하지만, 어떤 이유로 파이프 라인 인쇄 첫 번째 테스트 ubuntu14에 대한 출력을 표시하지만 나머지는 인쇄하지 않습니다. 비록 그들은 확실히 처형 당한다. 불행하게도 이것은 디버깅 프로세스를 복잡하게 만든다.

UPDATE :이 Jenkinsfile를 사용하는 해결 방법으로는 :

node { 
    stage 'Checkout' 
    checkout scm 

    stage 'test' 
    catchError { 
    wrap([$class: 'AnsiColorBuildWrapper', 'colorMapName': 'XTerm']) { 
     sh 'make test-ubuntu14' 
     sh 'make test-ubuntu16' 
     sh 'make test-centos6' 
     sh 'make test-centos7' 
    } 
    } 
    step([$class: 'Mailer', 
     notifyEveryUnstableBuild: true, 
     recipients: emailextrecipients([[$class: 'CulpritsRecipientProvider'], 
             [$class: 'RequesterRecipientProvider']])]) 
} 

어쨌든, 난 여전히 하나의 메이크업 테스트의 출력을 인쇄하는 방법을 알고 싶어요. 결과 = SH 스크립트 :

답변

1

변수에 출력을 얻는 시도 '테스트 ubuntu14을'returnStdout을 : 사실

방금 ​​변수 인쇄 결과

를 인쇄
관련 문제