Несколько параметризованных значений сборки Jenkins передают значение в Jenkinsfile для декларативного конвейера - PullRequest
0 голосов
/ 21 июня 2020

Привет, мой проект Jenkins - это параметризованная сборка. У меня есть 3 переменные. 1 вариант выбора и 2 строковых параметра. Выбранный параметр - do_you_want_to_deploy, а строковый параметр - git_tag и git_branch. Я хочу знать, как передать это значение в jenkinsfile?

В проекте Freestyle я выбрал «Дополнительные переменные», а затем получил ключ и значение. Итак, я поставил ключ deploy_location, значение - $ {do_you_want_to_deplo}. Ключ - which_tag, значение - $ {git_tag}. Ключ - which_ranch, значение - $ {git_branch}. Я выступаю за ansible. Как я могу добавить verbos -vvv? Это для проекта трубопровода. Ниже мой код

                ansiblePlaybook(
                    vaultCredentialsId: 'VaultId',
                    inventory: 'host-inventory.yml',
                    playbook: 'myPlaybook.yml'
                )
``

I also need pass same value to downstream project. How can this be done?

1 Ответ

1 голос
/ 21 июня 2020

Привет, мой проект Jenkins - это параметризованная сборка. У меня есть 3 переменные. 1 вариант выбора и 2 строковых параметра. Выбранный параметр - do_you_want_to_deploy, а строковый параметр - git_tag и git_branch. Я хочу знать, как передать это значение в jenkinsfile?

В Jenkinsfile есть блок параметров для определения переменных. В соответствии с вашим вариантом использования определение параметров может выглядеть следующим образом. Здесь, по выбору в вашем объяснении, я предполагал, что вам нужен переключатель, но если вам нужен список элементов, используйте тип параметра choice.

pipeline {
...
  parameters {
    booleanParam(name: 'do_you_want_to_deploy', defaultValue: false, description: 'Description of do_you_want_to_deploy')
    string(name: 'git_tag', defaultValue: '', description: 'Description of git_tag')
    string(name: 'git_branch', defaultValue: '', description: 'Description of git_branch')
  }
  stages {
    stage('Example') {
      steps {
        ansiblePlaybook(
          ...
        )
      }
    }
  }
}

В проекте фристайла я выбираю 'Extra Переменные ', а затем получили ключ и значение. Итак, я поставил ключ deploy_location, значение - $ {do_you_want_to_deplo}. Ключ - which_tag, значение - $ {git_tag}. Ключ - which_ranch, значение - $ {git_branch}. Я выступаю за ansible. Как я могу добавить verbos -vvv? В плагине

Ansible есть опция extraVars, которую можно использовать для передачи количества переменных из конвейера. Существует еще один параметр с именем extras, который принимает строку и может использоваться для передачи дополнительных переменных, переключателей и т. Д. c.

Вместе ansiblePlaybook может выглядеть так, как показано ниже,

ansiblePlaybook (
  vaultCredentialsId: 'VaultId',
  inventory: 'host-inventory.yml',
  playbook: 'myPlaybook.yml',
  extras: '-vvv',
  extraVars: [
    deploy_location: params.do_you_want_to_deploy,
    which_tag: params.git_tag,
    which_branch: params.git_branch
  ]
)

Мне также нужно передать то же значение в нисходящий проект. Как это сделать?

Как видно из примера ansiblePlaybook выше, к параметрам можно получить доступ через объект params.

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