Jenkins Intégration Continue avec Amazon S3 - Tout est de les télécharger à la racine?
Je suis en cours d'exécution Jenkins et j'ai réussi à travailler avec mon compte Github, mais je ne peux pas le faire fonctionner correctement avec Amazon S3.
J'ai installé le S3 plugin et quand je lance un build avec succès les téléchargements vers le compartiment S3-je préciser, mais tous les fichiers téléchargés à la fin dans la racine du seau. J'ai un tas de dossiers (tels que /css /js et ainsi de suite), mais tous les fichiers dans ces dossiers de hithub fin jusqu'à la racine de mon S3 compte.
Est-il possible d'obtenir le S3 plugin à télécharger et à conserver la structure du dossier?
OriginalL'auteur Kris Anderson | 2012-07-18
Vous devez vous connecter pour publier un commentaire.
Il ne ressemble pas à ce qui est possible. Au lieu de cela, je suis en utilisant s3cmd pour ce faire. Vous devez d'abord l'installer sur votre serveur, puis, dans un des scripts bash dans un Jenkins, vous pouvez utiliser:
Qui va copier tous les fichiers de votre S3 compte le maintien de la structure de dossier. Le-P garde des autorisations de lecture pour tout le monde (ce qui est nécessaire si vous utilisez votre seau comme un serveur web). C'est une excellente solution à l'aide de la fonctionnalité de synchronisation, parce qu'il compare tous vos fichiers locaux contre le compartiment S3 et copie uniquement les fichiers qui ont été modifiés (par comparaison des tailles de fichiers et les sommes de contrôle).
JClouds n'est pas la grande forme non plus; il maintient à défaut avec un obscur erreur sur streaming. Avoir recours à un CLI outil pour c'est ridicule...
s3cmd n'est pas optimal car il nécessite un magasin distinct pour les informations d'identification aws. Il n'y a que le mérite de la s3 plugin utilisation de s3 profils pour l'authentification. D'accord que la préservation de l'artefact hiérarchie serait préférable de comportement actuel.
OriginalL'auteur Kris Anderson
Je n'ai jamais travaillé avec le S3 plugin pour Jenkins (mais maintenant que je sais qu'il existe, je pourrais faire un essai), mais, en regardant le code, il semble que vous ne pouvez faire ce que vous voulez l'aide d'une solution de contournement.
Voici le code du module (prises à partir de github) --j'ai enlevé les parties du code qui ne sont pas pertinents pour la lisibilité:
classe
hudson.plugins.s3.S3Profile
, méthodeupload
:Maintenant, si vous prenez un coup d'oeil dans
hudson.FilePath.getName()
's JavaDoc:Maintenant, jetez un oeil dans le
hudson.plugins.s3.Destination
'constructeur:La
Destination
JavaDoc de la classe dit:Conclusion: la
filePath.getName()
appel enlève tout préfixe (S3 n'a pas de répertoire, mais plutôt les préfixes, voir cette et cette threads pour plus d'info) à ajouter dans le fichier. Si vous avez vraiment besoin de mettre vos fichiers dans un "dossier" (c'est à dire ayant un préfixe spécifique qui contient une barre oblique (/
)), je vous suggère d'ajouter le préfixe à la fin de votre seau nom, comme explicited dans leDestination
JavaDoc de la classe.OriginalL'auteur Viccari
Oui, c'est possible.
Il ressemble pour chaque dossier de destination, vous aurez besoin d'une instance distincte de la S3 plugin.
"Source" est le fichier que vous avez télécharger.
De Destination"seau" est l'endroit où vous placez votre chemin.
OriginalL'auteur DonBecker
À l'aide de Jenkins 1.532.2 et S3 Éditeur De Plug-in de 0,5, l'INTERFACE utilisateur de configurer l'écran Tâche rejette supplémentaire S3 publier les entrées. Il y aurait également une importante prestation de maintien à nous si le plugin recréé l'espace de travail structure de répertoire que nous aurons beaucoup de répertoires à créer.
OriginalL'auteur hundel
OriginalL'auteur Вадим