J'essaie de compresser les dossiers créés en tant que sortie de mon travail de pipeline jenkins à l'aide d'un script de pipeline. En googlant j'ai appris à connaître le Jenkins
Étapes de l'utilitaire Pipeline - Zip zipFile
https://jenkins.io/doc/pipeline/steps/pipeline-utility-steps/#code-Zip-code-create-Zip-file vers des dossiers/fichiers Zip mais n'a pas pu obtenir la syntaxe de pipeline exacte pour Zip .
Dans mon espace de travail, j'ai un dossier nommé «Test» qui comporte deux sous-dossiers, «Test1», «Test2». Chaque sous-dossier aura des fichiers .dll. Donc, je voudrais compresser le dossier entier 'Test' avec tous les sous-dossiers.
node(Jenkinks_1)
{
echo "Zip"
Zip zipFile: 'Test.Zip', dir:'C:\\workspace\\Build_Sample\\Test'
echo "END - Zip"
}
Voici la sortie de la console de Jenkins:
Started by user XXXXX
[Pipeline] node
Running on Jenkinks_1 in C:\workspace\Build_Sample
[Pipeline] {
[Pipeline] echo
Zip
[Pipeline] echo
END - Zip
[Pipeline] }
[Pipeline] // node
[Pipeline] End of Pipeline
Finished: SUCCESS
Vous recherchez des conseils pour compresser les dossiers à l'aide de la syntaxe du pipeline. Appréciez vos entrées.
Je voulais compresser des fichiers en sortie de mon travail de pipeline jenkins
Premièrement, essayez la même opération par étapes et par étapes, comme ici :
pipeline {
agent any
stages {
stage ('Push artifact') {
steps {
sh 'mkdir archive'
sh 'echo test > archive/test.txt'
Zip zipFile: 'test.Zip', archive: false, dir: 'archive'
archiveArtifacts artifacts: 'test.Zip', fingerprint: true
}
}
...
}
Il utilise archiveArtifacts
pour enregistrer le résultat.
Si utiliser un chemin absolu fonctionne maintenant, essayez un chemin relatif ('..'
)
Comme le voit le OP Sri , Zip zipFile
fait partie du plug-in Steps - JENKINS Pipeline Utility .
Voir " Étapes mises en œuvre ".
En ce qui concerne la syntaxe à utiliser pour la sélection de fichiers multicritères, NicolasW notes dans les commentaires que la documentation est vague : "utiliser une syntaxe globale" ...
Il l’a cependant fait fonctionner avec une syntaxe de base séparée par des virgules.
Par exemple.
Zip zipFile: 'test.Zip', archive: false, glob: 'config-/**/,scripts/**/*.*
Était capable de Zip après avoir installé le plugin Pipeline Utility Steps
.
Je suis tombé sur cela parce que Zip n'était pas ... installé sur l'hôte.
Rappel à soi-même: Si vous avez besoin de Zip, installez-le d'abord.Sudo yum install Zip
vous pouvez simplement utiliser sh (le serveur Jenkins doit installer Zip);
sh '''
Zip -r algo.Zip algo
'''
script de pipeline comme celui-ci
node {
stage('Clean'){
cleanWs()
}
stage('Checkout') {
git branch: 'develop', url: 'ssh://user@ip:29418/prj.git'
}
stage('Zip') {
dir('algo-python') {
sh '''
Zip -r algo.Zip algo
'''
}
}
stage('Upload Zip'){
dir('algo-python') {
sh '''
source /etc/profile
export HADOOP_USER_NAME=dev
hdfs dfs -put -f algo.Zip /user/dev/zipfile/
'''
}
}
}