У меня есть сценарий конвейера Jenkins, в котором есть шаг, который выполняет 2 линтера (PyLint и Flake8), запускаемых запросом на получение, подобным этому.
pipeline {
agent any
stages {
stage('PR Lint') {
when { branch "PR-*" }
steps {
parallel(
flake8: {
sh "mkdir flake8"
sh "git diff -U0 | tox -r -e flake8 -- --diff - --exit-zero --tee --output-file=flake8/flake8.txt"
archiveArtifacts allowEmptyArchive: true, artifacts: '**/flake8/*.txt'
step([
$class: 'ViolationsToGitHubRecorder',
config: violation_to_github_config
])
},
pylint: {
script{
if( readFile('tox.ini').contains('[testenv:pylint]')){
sh "mkdir pylint"
sh "tox -e pylint -- --errors-only --output-format=parseable > pylint/pylint.txt || true"
archiveArtifacts allowEmptyArchive: true, artifacts: '**/pylint/*.txt'
step([
$class: 'ViolationsToGitHubRecorder',
config: violation_to_github_config
])
}
}
})
Я хочу дать разработчикам возможность пропустить выполнениеPyLint в зависимости от любой локальной конфигурации.Как вы видите, в настоящее время у меня есть строка if(readFile('tox.ini').contains('[testenv:pylint]'))
, но это изменение в конфигурации будет перенесено в хранилище при слиянии, и я этого не хочу.
Есть ли обходной путь?