Можно ли создать параметризованный сценарий конвейера в Jenkins, перечислив параметры в реальном скрипте, а не в конфигурации работы - PullRequest
0 голосов
/ 12 декабря 2018

В декларативном конвейере я могу указать параметр, который конвейер ожидает прямо в скрипте конвейера, следующим образом:

pipeline {
   parameters([
    string(name: 'DEPLOY_ENV', defaultValue: 'TESTING' )
   ])
}

это можно сделать в скриптовом конвейере?Я знаю, что могу сделать это:

enter image description here

НО, ВОЗМОЖНО ЛИ ЭТО СДЕЛАТЬ:

node{
   parameters([
    string(name: 'DEPLOY_ENV', defaultValue: 'TESTING' )
   ])
}

Ответы [ 4 ]

0 голосов
/ 30 марта 2019

Я создал его снаружи, и это сработало!Кроме того, я использую логическое значение, и оно работает как шарм на scripted версии

// Parameters for the build
properties([
  parameters([
     booleanParam(name: 'DEPLOY_SHA', defaultValue: false),
  ])
])

podTemplate(name: ptNameVersion, label: ptNameVersion, containers: [
...
...
] 

. Показывает параметр

Screen Shot 2019-03-29 at 4 37 29 PM

0 голосов
/ 14 декабря 2018

Я настоятельно рекомендую использовать «Генератор фрагментов» для первого использования, чтобы выяснить это.Это позволит вам использовать графический интерфейс, который может выглядеть точно так же, как снимок, которым вы поделились выше, чтобы заполнить нужные настройки и сгенерировать соответствующий синтаксис.В частности, для этого вопроса выберите пример шага «свойства: задать свойства задания» в Генераторе фрагментов

Вы можете получить доступ к «Генератору фрагментов» с любого сервера Jenkins, перейдя к конечной точке /pipeline-syntax.

Для получения дополнительной информации о генераторе фрагментов см .: https://jenkins.io/doc/book/pipeline/getting-started/#snippet-generator

0 голосов
/ 14 декабря 2018

Вы можете использовать плагин Jenkins Job DSL для создания заданий, конвейеров, многоотраслевых конвейеров ... DSL позволяет определить задание, а затем предлагает полезный набор функций для настройки общих элементов Jenkins.Доступна конфигурация для предоставления прямого доступа к config.xml перед созданием задания.С помощью блока параметров вы можете легко определить любой тип параметров с их значениями по умолчанию и описанием.Обратите внимание, что этот плагин также совместим с git и другими системами контроля версий.

jobDsl scriptText: ''' job('example') {
    parameters {
        stringParam('Parameter Name', 'Default Value' , 'Parameter Description')
    }
    scm {
        perforceP4('p4_credentials') {
            workspace {
                manual('ws_name', '//depot/Tools/build/... //ws_name/build/...')
            }
        configure { node ->
                    node / workspace / spec / clobber('true')
            }
        }
    }
}'''

Ссылки:

https://jenkinsci.github.io/job-dsl-plugin/#path/pipelineJob-scm-perforceP4

https://wiki.jenkins.io/display/JENKINS/Job+DSL+Plugin

0 голосов
/ 12 декабря 2018

Я нашел экспериментальное решение, поэтому хочу поделиться им:

node {
  properties(
    [
        parameters(
            [string(defaultValue: '/data', name: 'Directory'),
            , string(defaultValue: 'Dev', name: 'DEPLOY_ENV')]
            )

    ]
    )    

  ....
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...