groovy 将构建输入从Jenkins传递到Python脚本

ma8fv8wu  于 2022-11-28  发布在  Jenkins
关注(0)|答案(1)|浏览(188)

我写了这个简单的Jenkinsfile来执行Python脚本。
Jenkins作业应该获取Jenkins构建参数的值并将其注入python脚本,然后执行python脚本。
这是Jenkins的档案

pipeline{
agent any
parameters {
    string description: 'write the week number', name: 'Week_Number'
}
stages{
    stage("Pass Week Number&execute script"){
        steps{
            sh 'python3 statistics.py'
        }
    }
}
}

接下来我将转到Jenkins,选择使用参数构建,并在Week_Number变量中写入一些值。
我需要做的是:将此Week_Number值作为整数传递给python脚本中的变量。
下面是我感兴趣的Python脚本部分:

weekNum = int(os.environ.get("Week_Number"))

我在网上读到了有关使用os.environ.get()传递值的内容,但我认为Python脚本在获取Jenkins构建参数方面仍然缺少一些东西。
有什么帮助吗?

5lwkijsr

5lwkijsr1#

您需要python脚本能够解析命令行参数或命名命令行参数。
如果脚本使用命令行参数,则可以按如下方式传递参数:

stages{
    stage("Pass Week Number&execute script"){
        steps{
            sh('python3 statistics.py ' + params.Week_Number)
        }
    }
}

如果您的指令码使用具名命令列参数,其中指令码中的具名参数为input_week_number,您可以如下所示传递:

stages{
    stage("Pass Week Number&execute script"){
        steps{
            sh('python3 statistics.py --input_week_number' + params.Week_Number)
        }
    }
}

相关问题