Comment obtenir jenkins pour copier des objets à un répertoire dynamiques?
Je vais essayer d'obtenir Jenkins pour copier les objets de construire un répertoire d'archivage sur un autre serveur à l'aide de la scp plugin.
Idéalement, je voudrais être en mesure d'avoir la destination être dynamique basée sur la version de sorte que le résultat voudrais quelque chose comme /builds/<build version>/
Pour une version comme 1.2.3.4, il devrait ressembler à:
/builds/1.2.3.4/
À la lecture de la scp page du plugin, il ne ressemble pas à ce qui est possible, mais j'ai pensé que quelqu'un ici peut-être compris.
Est-il un moyen de faire cela?
Est-il mieux de mettre juste les artefacts avec le numéro de version intégré dans le nom de fichier dans un répertoire?
OriginalL'auteur afrosteve | 2011-03-09
Vous devez vous connecter pour publier un commentaire.
Comme vous l'avez dit, je ne pense pas que la scp plugin peut le faire directement. Cependant, il y a peut être une solution de contournement.
Dans votre construction, vous avez accès au numéro de build à l'aide de $BUILD_NUMBER (ou %BUILD_NUMBER%, selon le cas, peut -> Linux vs Windows).
En tout cas, dans le cadre de votre script, vous pouvez créer un répertoire avec $BUILD_NUMBER comme le nom, donc:
mkdir -p $BUILD_NUMBER
-ou-
md %BUILD_NUMBER%
Ainsi, par exemple, un nouveau répertoire /chemin/vers/espace de travail/1.2.3.4
Une fois votre construction terminée, à la fin de votre script, créer le répertoire ci-dessus, déplacez votre artefact, et tar/zip du répertoire.
Utiliser ce tar/zip fichier en tant que votre emploi de l'artefact.
Utiliser la scp plugin pour le transfert de cet artefact pour votre machine de destination, et décompresser/décompressez-là (disons à /chemin/vers/artefact/répertoire)
Ce que vous aurez alors, est /chemin/vers/artefact/annuaire/1.2.3.4.
Pour la prochaine génération, disons 1.2.3.5, vous allez créer un nouveau répertoire (nommé 1.2.3.5), déplacez votre artefact à la fin de la construction, la fermeture-éclair et de le transférer.
Lorsque vous décompressez-le à votre destination, vous aurez un nouveau répertoire /chemin/vers/artefact/annuaire/1.2.3.5 avec la nouvelle construction de l'artefact.
Je sais que cela semble confus, mais est en fait assez facile à mettre en œuvre.
Nous sommes en cours d'exécution maven2 construit dans Jenkins, donc nous n'avons pas un script pour faire tout cela... c'est à dire en écrivant Jenkins artefacts après maven a la compilation est réussie. Le travail de config pour Maven2 les travaux ne permet <comprend> syntaxe pour que les archives, mais ne m'a pas laissé d'archives à un équipement réseau ou scp emplacement. Est-ce possible?
Vous pouvez toujours utiliser la fonction "Exécuter Shell" avant de maven trucs a courir, et de créer un répertoire nommé d'après le $BUILD_NUMBER. Vous pouvez ensuite utiliser Maven pour créer votre artefact dans ce répertoire, ou de le déplacer une fois que maven est un fait, encore une fois à l'aide de "Exécuter Shell". Il n'a pas à être un script séparé. Cela fait sens, en quelque sorte :-\?
"Exécuter Shell" n'est pas disponible pour Maven2 emplois. J'ai creusé un peu plus et trouvé le "Jenkins M2 Étapes Supplémentaires Plugin" qui me donne le crochet j'ai besoin de faire exactement ce que je veux après le succès de Maven2 construire. wiki.jenkins-ci.org/display/JENKINS/M2+Extra+Mesures+Plugin
Oh ouais. Désolé à ce sujet. Je pensais vous avoir un travail normal avec un M2 étape. Mais bon trouver!
OriginalL'auteur Sagar