如何将Jenkins文件参数传递给python脚本进行进一步处理

时间:2018-07-23 15:16:05

标签: python jenkins jenkins-declarative-pipeline

我试图在用户触发作业期间接受“ .xlsx”文件输入,然后将其传递给python脚本,该脚本将读取xlsx文件的内容并根据需要进行处理。我面临的问题是我的python函数无法找到该文件。下面是我的管道的框架。

    pipeline {
agent {
    label 'docker'
}
options {
    skipDefaultCheckout true
}
stages {
    stage('Run container') {
        agent {
            docker {
                image 'python:3.6'
                label 'docker'
                args '-u root:root'
            }
        }
        steps{
            script {
                stage('Checkout from git'){
                }
                stage('Get file and create report') {
                    withCredentials([
                        usernamePassword(credentialsId: 'credentials-id', usernameVariable: 'Username', passwordVariable: 'Password')
                    ]) {
                    sh '''
                        python3 path-to-file/generate-excel-reports.py --excel_file excel_input_file.xlsx
                    '''
                    }
                }
            }
        }               
        post {
            always {
                sh "rm -rf *"
                cleanWs()
            }
        }
    }
}

}

我已按照以下屏幕截图配置了file参数 FileParamConfigOnJenkins python文件引发以下错误: “ FileNotFoundError:[错误2]没有这样的文件或目录:'excel_input_file.xlsx'”

还对Jenkins Pipeline上的fileExists步骤进行了快速检查,但也失败了。有人可以帮我理解为什么当我从桌面上使用选定的文件触发作业时,为什么在管道和python脚本中无法使用xlsx文件。就我阅读文档和所有其他文章而言,“文件参数”将输入文件放置在jenkins工作区中。

0 个答案:

没有答案