2015-06-18 2 views
0

Я пытаюсь взять jenkins gradle plugin и сделать его совместимым с новым типом задания рабочего процесса. Я получил его до точки, где я могу использовать что-то вроде этого, и он будет работать Gradle довольно успешно:Как получить доступ к чувствительным переменным в плагине jenkins, совместимом с рабочим процессом?

step([$class: 'Gradle', 
      switches: "-PenableInstallerDistribution=true", 
      tasks: 'build install', 
      gradleName: '(Default)', 
      useWrapper: true, 
      makeExecutable: true, 
      fromRootBuildScriptDir: true, 
      useWorkspaceAsHome: true]) 

Однако, я должен был пойти на некоторые жертвы. Я должен был просто удалить эти строки:

Set<String> sensitiveVars = build.getSensitiveBuildVariables(); 
args.addKeyValuePairs("-D", fixParameters(build.getBuildVariables()), sensitiveVars); 

я не могу найти способ, чтобы получить доступ к «чувствительным переменным» из Run объекта, который поставляется в месте старых AbstractBuild и выскакивают пароли в выходную консоли кажется как плохая идея. (Я считаю, что это то, что код пытается избежать, я не писал оригинал.)

ответ

2

В настоящее время нет Run.getSensitiveBuildVariables(), хотя это возможно. В любом случае этот метод просто связывает с другими плагинами, которые могут считаться секретами для различных целей; он не несет ответственности за то, что пароли, включенные в командную строку от ProcStarter, будут отображаться как **** в журнале построения, который будет выполнен с использованием ArgumentListBuilder.addMasked.

Быстрый ответ заключается в том, что в ожидании новых API вы должны просто пропустить этот блок, если не указан AbstractBuild.