2017-07-10 5 views
1

J'ai un travail de construction dans jenkins qui construit le projet de github pour n'importe quelle branche. package sera créé dans l'espace de travail de travail de construction avec la version xxxx-yyyyy-2.15.0-SNAPSHOT.zip.Comment créer des dossiers dynamiquement et télécharger des artefacts dans l'artefact Jfrog en utilisant les fichiers de fichiers dans Jenkins?

Mon prochain emploi push Artifactory a spécif_fichier écrit comme ci-dessous:

{ 
"files": [ 
     { 
      "pattern": "/var/lib/jenkins/workspace/Jobname/target/*/xxxx-yyyyy*.zip", 
      "target": "libs-snapshot-local/xxxx-yyyyy/", 
      "recursive": "false" 
     } 
    ] 
} 

Au-dessus spécif_fichier reconnaissent le modèle et télécharger le zip dans libs-snapshot-local/xxxx-yyyyy/. Mais j'ai besoin de télécharger le fichier avec le dossier créé avec le nom de version disponible sur le fichier zip xxxx-yyyyy-2.15.0-SNAPSHOT.zip.

Quelqu'un peut-il m'aider à créer un dossier dynamiquement avec le nom de la version? une idée sur la façon de spécifier le chemin cible dans filespec?

Répondre

6

Les spécifications de fichier ont la possibilité d'utiliser placeholders afin de créer des chemins plus flexibles.
Par exemple, dans votre cas:

{ 
"files": [ 
     { 
      "pattern": "/var/lib/jenkins/workspace/Jobname/target/*/(xxxx-yyyyy*).zip", 
      "target": "libs-snapshot-local/{1}/", 
      "recursive": "false" 
     } 
    ] 
} 

S'il vous plaît prêter attention aux parenthèses dans le motif et le marqueur d'espace réservé {1} utilisé dans la cible.