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 스크립트 :