2014-12-15 7 views
17

Ich versuche eine Möglichkeit zu finden, den Benutzer aufzufordern, eine generische Datei von einem lokalen Rechner auszuwählen und in einen Jenkins-Job hochzuladen, bevor er erstellt wird. Die Eingabedatei, die der Benutzer hochladen wird, ist nicht unbedingt eine Text- oder eine Eigenschaftendatei.Wie lade ich eine generische Datei in einen Jenkins-Job hoch?

Ich versuche speziell, den Benutzer dazu zu bringen, die gewünschte Datei auszuwählen - gehe zu ihrer Datei; Der Benutzer sollte den Pfad der Datei nicht übergeben.

Dank

+0

Dies könnte nützlich sein. http://stackoverflow.com/questions/16914244/upload-a-txt-file-to-jenkins-build-job-as-build-parameter – NotAgain

+0

Verwenden von 'curl': http://stackoverflow.com/questions/13348480/How-to-Upload-Datei-von-Kommandozeile-als-Datei-Parameter-in-Jenkins – jmunsch

Antwort

20

Verwenden Sie die Dateiparameter:

Datei-Parameter ermöglicht einen Build eine Datei zu akzeptieren, von dem Benutzer vorgelegt werden, wenn eine neue Build-Scheduling. Die Datei wird nach dem Auschecken/Aktualisieren am bekannten Speicherort im Arbeitsbereich abgelegt, damit Ihre Build-Skripts diese Datei verwenden können.

enter image description here

Wenn Sie die Datei hat eine gewisse Ausdehnung überprüfen müssen, würden Sie das mit einem Skript als Teil Ihrer Arbeit zu tun haben, und nicht die Job-Erweiterung/content-type nicht Entsprechen Sie, was Sie brauchen.

+0

Danke, "Dateiparameter" funktioniert, – DAZA

0

Das ist nervig zu handhaben, wenn Sie nicht wissen, wie der Dateiname sein wird oder seinen Namen ändern muss, bevor er sein Ziel erreicht. Sie müssen irgendwie einen Hack durchführen. Dies ist, wie ich es tun:

  1. „Datei Parameter“ Parameter Verwenden Sie Ihre Datei
  2. Verwenden Sie das OS-spezifische Skript laden Sie die Datei umbenennen von was auch immer Sie Ihre File Parameter genannt, was auch immer Sie es sein wollen zB wenn mein File Parameter den File location Wert von file_name statt einer tatsächlichen relativen Dateipfad hätte, würde ich dann so etwas tun für etwa Windows-Inneren ein Build-Step für „Windows Batch-Befehl ausführen“:

move .\file_name .\%file_name%

Und dann einfach mit ArtifactDeployer alles dort an den gewünschten Ort kopieren.

ps: Damit werden keine digitalen Signaturen entfernt, daher sollte der move-Vorgang als meist sicher betrachtet werden.

Verwandte Themen