簡體   English   中英

Jenkins 管道實用程序步驟 - zip zipFile

[英]Jenkins Pipeline Utility Steps - zip zipFile

我正在嘗試使用管道腳本壓縮作為 jenkins 管道作業輸出創建的文件夾。 通過谷歌搜索,我開始了解詹金斯

管道實用程序步驟 - zip zipFile

https://jenkins.io/doc/pipeline/steps/pipeline-utility-steps/#code-zip-code-create-zip-file壓縮文件夾/文件,但無法獲得壓縮的確切管道語法。

在我的工作工作區中,我有一個名為“Test”的文件夾,它有 2 個子文件夾,分別為“Test1”、“Test2”。 每個子文件夾都有 .dll 文件。 所以,我想用所有子文件夾壓縮整個“測試”文件夾。

node(Jenkinks_1)
{
    echo "ZIP"
    zip zipFile: 'Test.zip', dir:'C:\\workspace\\Build_Sample\\Test'
    echo "END - ZIP"
}

以下是 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

尋找一些使用管道語法壓縮文件夾的指南。 感謝您的投入。

我想壓縮一些文件作為我的 jenkins 管道作業的輸出

首先,分階段和步驟嘗試相同的操作,如下所示

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
            }
        }
        ...
    }

它使用archiveArtifacts來記錄結果。

如果現在使用絕對路徑有效,請嘗試使用相對路徑 ( '..' )

正如OP Sri所見, zip zipFileJENKINS Pipeline Utility Steps Plugin 的一部分,並且需要JENKINS Pipeline Utility Steps Plugin
參見“ 實施步驟”。


關於用於多標准文件選擇的語法, NicolasW 在評論中指出 文檔含糊不清:“使用 glob ant-style 語法”...
盡管如此,他還是使用基本的昏迷分隔語法讓它工作了。
例如

zip zipFile: 'test.zip', archive: false, glob: 'config-/**/,scripts/**/*.*

但是,正如Tanvir評論中所指出的,問題 44078意味着您需要將zip替換為:

                 script{ zip zipFile: 'test.zip', archive: false, dir: 'archive' }

這意味着您需要使用script塊。

安裝Pipeline Utility Steps插件后能夠進行壓縮。

我遇到這個是因為 zip ……沒有安裝在主機上。
提醒自己:如果您需要zip,請先安裝它。

sudo yum install zip

你可以只使用 sh (jenkins 服務器需要安裝 zip);

 sh '''
            zip -r  algo.zip algo
 '''

像這樣的管道腳本

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

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM