Jenkins自定义管道以及如何添加要在jenkinsfile中设置的属性

时间:2019-10-18 02:36:31

标签: jenkins-pipeline jenkins-groovy

我正在尝试使用groovy创建自定义管道,但是在网络上找不到任何地方讨论了如何添加可以在jenkinsfile中设置的属性。我正在尝试添加curl命令,但需要在jenkinsfile中设置URL,因为每个版本的URL都不同。

任何人都可以解释该怎么做或在其中进行讨论的链接吗?

示例Jenkinsfile:

msBuildPipelinePlugin
{ 
    curl_url = "http://webhook.url.com" 
}

自定义管道常规代码:

def response = sh(script:'curl -i -X POST -H'Content-Type:application / json'-d'{“ text”,“ Jenkins Info。\ n这是更多文本”}}'curl_url, returnStdout:true)

谢谢

2 个答案:

答案 0 :(得分:0)

如果要在每次构建过程中将URL指定为字符串,则可以执行以下任一操作:

声明性管道

使用parameters {}指令:

pipeline {
    agent {
        label 'rhel-7'
    }
    parameters {
        string(
            name: 'CURL_URL',
            defaultValue: 'http://www.google.com',
            description: 'Enter the URL for file download'
        )
    }
    stages {
        stage('download-file') {
            steps {
                echo "The URL is ${params.CURL_URL}"
            }
        }
    }
}

脚本管道

使用properties([parameters([...])])步骤:

parameters([
    string(
        name: 'CURL_URL',
        defaultValue: 'http://www.google.com',
        description: 'Enter the URL for file download'
    )
])
node('rhel-7') {
    stage('download-file') {
        echo "The URL is ${params.CURL_URL}"
    }
}

您可以选择将defaultValuedescription的值保留为空。

作业GUI

以上两种语法中的任何一种都将在GUI中呈现为:

enter image description here

答案 1 :(得分:0)

我可以使用它

// response只是curl语句的输出

def response = [“ curl”,“-i”,“-v”,“-X”,“ POST”,“-data-urlencode”,“ payload = {\” text \“:\”邮件正文\“}”,“ URL转到此处”] .execute()。text

谢谢