web-dev-qa-db-fra.com

Jenkins Pipeline Utility Steps - Zip zipFile

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

4
Sri

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/**/*.*
5
VonC

Était capable de Zip après avoir installé le plugin Pipeline Utility Steps.

1
Sri

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

0
MonoThreaded

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/
            '''
        }
    }
}
0
geosmart