【问题标题】:Pass build inputs from Jenkins to a Python script将构建输入从 Jenkins 传递到 Python 脚本
【发布时间】:2022-11-28 06:23:17
【问题描述】:

我编写了这个简单的 Jenkinsfile 来执行 Python 脚本。

Jenkins 作业应该获取 Jenkins 构建参数的值并将其注入 python 脚本,然后执行 python 脚本。

这是詹金斯文件

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 构建参数。

有什么帮助吗?

【问题讨论】:

    标签: python jenkins groovy


    【解决方案1】:

    您需要 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)
            }
        }
    }
    

    【讨论】:

      猜你喜欢
      • 2018-05-29
      • 1970-01-01
      • 1970-01-01
      • 2020-01-16
      • 1970-01-01
      • 2018-06-20
      • 2011-06-26
      • 2019-08-22
      • 1970-01-01
      相关资源
      最近更新 更多