2017-02-22 14 views
11

Plugin Tham số lựa chọn mở rộng là tuyệt vời và tôi sử dụng nó trong các công việc được định cấu hình qua giao diện người dùng https://wiki.jenkins-ci.org/display/JENKINS/Extended+Choice+Parameter+pluginLàm cách nào để sử dụng plugin Tham số lựa chọn mở rộng trong tập lệnh đường dẫn Jenkins?

Tuy nhiên, tôi đang cố gắng làm cho nó hoạt động trong tập lệnh đường ống kiểu Jenkinsfile. Nó sẽ xuất hiện mà Extended Choice Parameter Plugin vẫn chưa hoàn toàn tương thích với các kịch bản đường ống từ máy phát điện Jenkins đường ống-cú pháp tạo ra các đoạn mã sau:

parameters([<object of type com.cwctravel.hudson.plugins.extended_choice_parameter.ExtendedChoiceParameterDefinition>]) 

Nếu tôi có thể tạo các thông số bằng tay tôi nhận được hành vi tương tự như đã đề cập trong https://issues.jenkins-ci.org/browse/JENKINS-32188

org.kohsuke.stapler.NoStaplerConstructorException: There's no @DataBoundConstructor on any constructor of class 

có ai biết về bất kỳ cách giải quyết đó có thể khắc phục vấn đề ExtendedChoiceParameterDefinition không sử dụng @DataBoundConstructor?

  • Jenkins 2.19.2
  • mở rộng Choice Parameter cắm 0,75
+1

[JENKINS-34.617] (https://issues.jenkins-ci.org/browse/JENKINS-34617) là một vấn đề mở cho điều này . – mkobit

Trả lời

0

Giống như mkobit cho biết hiện không thể sử dụng các plugin lựa chọn mở rộng như một tham số xây dựng.

Những gì tôi muốn sử dụng như một cách giải quyết là một cấu trúc như sau

timeout(time: 5, unit: TimeUnit.MINUTES) { 
    def result = input(message: 'Set some values', parameters: [ 
     booleanParam(defaultValue: true, description: '', name: 'SomeBoolean'), 
     choice(choices: "Choice One\nChoice Two", description: '', name: 'SomeChoice'), 
     stringParam(defaultValue: "Text", description: '', name: 'SomeText') 
    ]) as Map<String, String> 
} 

echo "${result.SomeBoolean}, ${result.SomeChoice}, ${result.SomeText}" 

Và gọi nó vào đầu của đường ống dẫn của tôi. Sau đó, bạn sẽ được hỏi về các yếu tố đầu vào này ngay sau khi bắt đầu xây dựng.

-2

Tôi thực sự tìm thấy câu trả lời một cách tình cờ ở đây: Build after every commit (without webhooks)

node { 
    properties([ 
     buildDiscarder(
      logRotator(artifactDaysToKeepStr: '', artifactNumToKeepStr: '', daysToKeepStr: '', numToKeepStr: '5')), 
      parameters([ 
        [$class: 'ExtensibleChoiceParameterDefinition', 
         choiceListProvider: [ 
          $class: 'TextareaChoiceListProvider', 
          choiceListText: 'foo\nbar', 
          defaultChoice: 'bar', 
          addEditedValue: false, 
         ], 
         description: 'blah blah blah blah', 
         editable: true, 
         name: 'choose_mnt' 
        ], 
        booleanParam(defaultValue: false, description: '[TO DO]', name: 'include_installers') 
       ]), 
       pipelineTriggers([]) 
      ]) 

    stage('Do Work') { 
     print("-----------------------------------") 
     print("Build ID: ${currentBuild.id}") 
     sh 'date' 
     sh 'pwd' 
    } 
} 
+2

Điều này là sai. ** Lựa chọn mở rộng ** KHÔNG được ** Mở rộng ** lựa chọn. –

Các vấn đề liên quan