【发布时间】:2019-09-30 16:56:52
【问题描述】:
我在 Jenkins 步骤中调用 Container 中的 pylint
stage('Linting') {
sh "docker run -v $WORKSPACE:/workspace ${DOCKER_REGISTRY}/${DOCKER_TAG}:latest /workspace/lint.sh"
}
问题是它只打印结果,但在 Jenkins 上永远不会失败。
这里是 bash 文件“lint.sh”,用于在容器内调用 pylint:
#!/bin/bash
awd=$(pwd)
for file in $(find . -name '*.py'); do
filename=$(basename $file)
if [[ ${file:(-3)} == ".py" ]] && [[ $filename = *"test"* ]] ; then
echo "perform PEP8 lint (python pylint blah) for $filename"
cd $awd && cd $(dirname "${file}") && pylint "${filename}"
fi
done
约束:我必须调用 docker 并运行测试,因为我正在使用外部 Jenkins (Cloudbees) 来获取 pip 库。
【问题讨论】: