Как запускать сборки Jenkins удаленно и передавать параметры

Я вызываю работу Дженкинса удаленно, используя:

wget http://<ServerIP>:8080/job/Test-Jenkins/build?token=DOIT

здесь Test-Jenkins вызывается задание и DOIT - это маркер безопасности, который я использовал.

теперь мне нужно передать некоторые параметры в сборку.xml-файл этого задания, т. е. Test-Jenkins.

Я еще не придумал, как передать переменные.

4 ответов


см. документацию Дженкинс: Параметризованные Сборки

ниже находится строка, которая вас интересует:

http://server/job/myjob/buildWithParameters?token=TOKEN&PARAMETER=Value

чтобы запустить сборку с собственными / пользовательскими параметрами, вызовите следующий URL (используя POST или GET):

http://JENKINS_SERVER_ADDRESS/job/YOUR_JOB_NAME/buildWithParameters?myparam=myparam_value

затем в конфигурации задания Дженкинса установите флажок"This build is parameterized" выберите "Add Parameter "кнопка и выберите"String Parameter" выпадающие значения.

теперь определите свой параметр-пример:

Enter image description here

теперь вы можете использовать свой параметр в свою работу / строительство газопровода, пример:

Enter image description here


чтобы передать / использовать переменные, сначала создайте параметры в разделе configure Дженкинса. Параметры, которые вы используете, могут иметь тип text, String, file и т. д.

после их создания используйте ссылку на переменную в полях, которые вы хотите.

например: я настроил / создал две переменные для Email-subject и Email-recipentList, и я использовал их ссылку в EMail-ext плагин (прилагается скриншот).

Enter image description here


вы можете просто попробовать его с помощью jenkinsfile. Создайте задание Jenkins со следующим сценарием конвейера.

pipeline {
    agent any

    parameters {
        booleanParam(defaultValue: true, description: '', name: 'userFlag')
    }

    stages {
        stage('Trigger') {
            steps {
                script {
                    println("triggering the pipeline from a rest call...")
                }
            }
        }
        stage("foo") {
            steps {
                echo "flag: ${params.userFlag}"
            }
        }

    }
}

создайте задание один раз вручную, чтобы настроить его и просто создайте запрос HTTP POST к заданию Jenkins следующим образом.

формат http://server/job/myjob/buildWithParameters?PARAMETER=Value

curl http://admin:test123@localhost:30637/job/apd-test/buildWithParameters?userFlag=false --request POST