Как установить несколько учетных данных, используя withcredentials в файле jenkins pipe groovy - PullRequest
0 голосов
/ 17 января 2020

Мне нужно установить два или более учетных данных для задания, я планирую использовать их отдельно, как показано ниже, чтобы их можно было использовать в нескольких заданиях

static void _artifactoryCredentialBinding(Job job) {
    job.with {
        wrappers {
            credentialsBinding {
                usernamePassword('USERNAME', 'PASSWORD', 'xxxxx')
            }
        }
    }
}

static void _jasyptCredentialBinding(Job job) {
    return job.with {
        wrappers {
            credentialsBinding {
                usernamePassword('', 'PASSWORD', 'jasypt-credentials')
            }
        }
    }
}

Когда я делаю это первое удостоверение перезагружается вторыми учетными данными.

Я буду вызывать эти два метода в качестве вспомогательного метода, когда это необходимо в моем файле groovy.

Мне потребуется добавить несколько учетных данных в нескольких заданиях и только один учетные данные в задании.

Добавление учетных данных в одну оболочку будет работать - несколько учетных данных , но я не смогу повторно использовать, если я добавлю несколько под то же самое.

Я попытался вернуть задание указанными выше способами и использовал те же методы для установки кредитов, но получил ошибку при сборке -

ОШИБКА: (CredentialBindingUtil. groovy , строка 28) Нет подписи метода: xxxx.CredentialBindingUtil $ __pfJasyptCredentialBinding_closure3.wrappers () применим для типов аргументов: (xxx.CredentialBindingUtil $ __ pfJasyptCred entialBinding_closure3 $ _closure9) значения: [xxxx. CredentialBindingUtil$__pfJasyptCredentialBinding_closure3$_closure9@11b4d391] [Office365connector] Нет веб-крючков для уведомления

Как сделать так, чтобы учетные данные добавлялись к существующим?

1 Ответ

2 голосов
/ 20 января 2020

Как обсуждалось в комментариях, этого можно достичь с помощью блока настройки.

static void _artifactoryCredentialBinding(def job) {
    job.with {
      configure { node ->

        node / 'buildWrappers' / 'org.jenkinsci.plugins.credentialsbinding.impl.SecretBuildWrapper' / 'bindings' << 'org.jenkinsci.plugins.credentialsbinding.impl.UsernamePasswordMultiBinding' {

          usernameVariable 'some-credential-id'
          credentialsId PASS1
          passwordVariable USER1

        }
      }
    }
}

static void _jasyptCredentialBinding(def job) {
  job.with {
    configure { node ->

      node / 'buildWrappers' / 'org.jenkinsci.plugins.credentialsbinding.impl.SecretBuildWrapper' / 'bindings' << 'org.jenkinsci.plugins.credentialsbinding.impl.UsernamePasswordMultiBinding' {

        usernameVariable 'some-credential-id'
        credentialsId PASS2
        passwordVariable USER2

      }
    }
  }
}

def a_job = job('a-temporaryjob')

_artifactoryCredentialBinding(a_job)
_jasyptCredentialBinding(a_job)


Чтобы понять, как работает блок настройки, я настоятельно рекомендую прочитать вики-страницу и более старый пост в блоге , который шаг за шагом объясняет, как настроить неподдерживаемый плагин.

...