2016-06-28 33 views
16

Sto assemblando un lavoro pipeline Jenkins che richiederà un parametro file. Posso attivare il lavoro e puntarlo su un file, ma non riesco a trovare dove il file è finito (in un normale lavoro freestyle sarebbe nello spazio di lavoro).Job Pipeline Jenkins con parametro file

Dove è finito il file caricato? O i parametri del file non funzionano attualmente con le pipeline?

risposta

3

risolto nel seguente modo:

node { 
    deleteDir() 
    stage("upload") { 
     def inputFile = input message: 'Upload file', parameters: [file(name: 'data.zip')] 
     new hudson.FilePath(new File("$workspace/data.zip")).copyFrom(inputFile) 
     inputFile.delete() 
    } 
    stage("checkout") { 
     echo fileExists('data.zip').toString() 

    } 
} 

So che la soluzione non è che bello perché la pipeline viene interrotto per l'upload ma funziona.

ulteriormente il "CopyFrom" è necessario, perché l'ingresso memorizza il "data.zip" nella directory di posti di lavoro e non nello spazio di lavoro (non so perché)

+0

'java.nio.file.NoSuchFileException: Jenkins/lavoro/lavoro/data.zip' –

1

Ho provato ad utilizzare la soluzione fornita da @ Christoph Forster, ma il file di input non è stato copiato da nessuna parte nello spazio di lavoro. così ho usato la soluzione come previsto https://bitbucket.org/janvrany/jenkins-27413-workaround-library/src/6b7dada8ea37?at=default

La libreria fornisce una nuova libreria - unstashParam - che salva il parametro di build file in uno spazio di lavoro. Funziona bene con il testo e il file yaml.

+0

couldn utilizzare questa soluzione alternativa in modo affidabile: i file casualmente non vengono copiati nell'area di lavoro. –

0

Trovato un WA (Rigorosamente per l'input di file basato su testo) Possiamo usare il parametro stringa multi-riga di Jenkins e chiedere all'utente di incollare il contenuto del file ad esso. E nella nostra pipeline, scrivere contenuti di questo parametro con passo gasdotto WriteFile, come:

stage('File Param WA') { 
      writeFile file: 'demo.yaml', text: params.DEMO_YAML 
} 

Multi Line String Parameter

Problemi correlati