我正在做一个多阶段的码头建设,以分离的应用程序从测试。现在,在我的Dockerfile中的某个位置,我运行:
RUN pytest --junit=test-reports/junit.xml在我的Jenkinsfile文件中,我分别这样做:
def app = docker.build("app:${BUILD_NUMBER}", "--target test .")
app.inside {
sh "cp -r /app/test-reports test-reports"
}
junit 'test-reports/junit.xml'现在,如果我的测试失败了,那么构建就失败了,这很好。但阶段的其余部分不会执行,即我没有访问test-report文件夹的权限。我怎么能做到这一点?
发布于 2021-05-31 20:36:25
我通过在构建阶段后始终使用块来解决类似的任务。请检查下面的代码是否有帮助。
always{
script{
sh '''#!/bin/bash
docker create -it --name test_report app:${BUILD_NUMBER} /bin/bash
docker cp test_report:/app/test-reports ./test-reports
docker rm -f test_report
'''
}
junit 'test-reports/junit.xml'
}https://stackoverflow.com/questions/67773456
复制相似问题