0

使用 Jenkins 管道,在执行脚本(Jenkinsfile)之前,需要在作业的目录中创建一个文件 - prop.properties

它可能具有以下内容(文件的内容应在 UI 上的 Job 配置中指定):

URL=https://app.example.com
TIMEOUT=6000

能否请教一下,怎么做?

可能的问题:

为什么它不能在管道脚本中完成?- 因为应该从 UI 指定属性。

为什么需要创建文件而不是运行带有特定参数的构建脚本?- 因为它可以从 1 到 20 个属性。对于每个作业,将指定不同的属性。

为什么需要创建文件而不是使用操作系统的环境变量?- 因为,在一台机器上可能同时运行不同的作业,并且每个作业的属性都不同。

4

1 回答 1

0

这就是作业参数的用途。在作业配置中(通过 UI),您可以指定不同的参数及其类型:

詹金斯工作参数

或者像这样在您的 Jenkinsfile 本身中(在这种情况下,它们将在第一次构建后添加到作业配置中):

    parameters {
        string(
            name: 'URL',
            description: 'The URL to target.'
        )
        string(
            name: "TIMEOUT",
            description: 'How long to wait for the "foo" operation to time out.'
        )
    }

然后,当用户通过 Jenkins UI 启动构建时,系统会提示他们在构建之前提供这些参数。如果您希望构建自动启动(例如通过 GitHub 挂钩),请务必同时提供默认值。

然后,在您的 Jenkinsfile 中,您可以像这样使用它们:

sh "foo --timeout ${TIMEOUT}"

或者

sh "foo --timeout ${params.TIMEOUT}"

即使在同一台机器上,它们也不会在不同的构建之间共享。

于 2020-01-09T09:47:59.170 回答