我有一个Jenkins管道,在这个阶段,它用hadolint删除Dockerfile,并用Pylint删除python文件。
[虽然Hadolint步骤有效,但Pylint步骤抛出此错误:
/var/lib/jenkins/workspace/readerXCL_blue@tmp/durable-7d7d2570/script.sh: line 2: pylint: command not found
script returned exit code 127
这些是相关的管道步骤:
stage('Lint Dockerfile') {
steps {
sh 'hadolint Dockerfile'
}
}
stage('Lint Python') {
steps {
sh 'pylint --disable=C *.py'
}
}
我明确尝试使用bash(但是bash似乎仍然是默认值),并设置venv来运行pylint,但无济于事。
pylint和hadolint命令均在运行Jenkins的计算机上手动使用,这是Ubuntu 18.04 EC2 VM。
感谢任何帮助。
问题出在Jenkins shell中,并且显然缺少virtualenv-即使Jenkins配置为使用bin / bash。
我解决的方法是:
steps {
sh 'bash ./lintpython.sh'
}
在lintpython.sh内部:
#!/bin/bash
python3 -m venv ~/.somevenv
source ~/.somevenv/bin/activate
pip install --upgrade pip &&\
pip install -r requirements.txt
pylint app.py