2016-05-18 34 views

risposta

0

Recentemente ho provato questo con poco successo. Sembra che ci sia un problema con questo. Secondo il documentation for class FileParameterValue c'è un costruttore che accetta un java.io.File in questo modo:

@DataBoundConstructor 
FileParameterValue(String name, 
        org.apache.commons.fileupload.FileItem file) 

C'è un altro Wich aspetta una FileItem in questo modo:

FileParameterValue(String name, 
        File file, 
        String originalFileName) 

Ma dal momento che solo la prima è annotata con @DataBoundConstructor anche quando io cerco di utilizzare questi ultimi in uno script:

file = new File(pwd(), 'test.txt'); 
build(
    job: 'jobB', 
    parameters: [ 
     [$class: "FileParameterValue", name: "TEST_FILE", file: file, originalFileName: 'test.txt'] 
    ] 
) 

Si noti che questo requi res approvazione copione per istanziare java.io.File

... ottengo il seguente errore:

java.lang.ClassCastException: hudson.model.FileParameterValue.file expects interface org.apache.commons.fileupload.FileItem but received class java.io.File 

ho capito che solo un file caricato dall'utente come ingresso runtime interattivo fornisce un oggetto di tipo org.apache.commons.fileupload.FileItem così nella fine ho fatto ricorso a archiving the file nel primo lavoro e a unarchiving nel lavoro downstream e ho risolto il problema. Ovviamente non è l'ideale, ma se sei in difficoltà è il modo più rapido per risolverlo.

0

Non è possibile. Ecco il bug jenkins. Aggiorna questa discussione una volta risolto il problema. Nel frattempo, accedi e vota per questo problema e chiedi loro di aggiungere documentazione per i parametri del lavoro di generazione della pipeline.

https://issues.jenkins-ci.org/browse/JENKINS-27413

Collegato a da qui: http://jenkins-ci.361315.n4.nabble.com/pipeline-build-job-with-FileParameterValue-td4861199.html

Ecco la documentazione per i diversi tipi di parametri (Link FileParameterValue)

http://javadoc.jenkins.io/hudson/model/FileParameterValue.html

0

cercare di passare un'istanza di FileParameterValue ai parametri (ha funzionato per me):

import hudson.model.* 

def param_file = new File("path/to/file") 

build job: 'otherproject', parameters: [new FileParameterValue('file_param_name', param_file, 'original_file_name')], wait: false