распакуйте файл, используя конвейер Jenkins - PullRequest
0 голосов
/ 16 мая 2018

У меня есть zip-файл с именем ***. Zip.Я использовал приведенную ниже команду, чтобы распаковать его.После того, как я распакую файлы, файлы внутри них также будут файлами "Zip" (более 3 файлов Zip).Не могли бы вы дать мне знать, как я могу распаковать даже эти файлы.

unzip zipFile: "$project_version",dir:"D:\\jenkins\\DEV\\extract\\project", quiet: true

Попытка сделать -

unzip dir: 'D:\\jenkins\\DEV\\extract\\project', glob: '', zipFile: 'D:\\jenkins\\DEV\\extract\\project\\project_*.zip'

Журналы ошибок

java.io.IOException: D:\jenkins\DEV\extract\project\project_*.zip does not exist.
    at org.jenkinsci.plugins.pipeline.utility.steps.zip.UnZipStepExecution.run(UnZipStepExecution.java:77)
    at org.jenkinsci.plugins.workflow.steps.AbstractSynchronousNonBlockingStepExecution$1$1.call(AbstractSynchronousNonBlockingStepExecution.java:47)
    at hudson.security.ACL.impersonate(ACL.java:260)
    at org.jenkinsci.plugins.workflow.steps.AbstractSynchronousNonBlockingStepExecution$1.run(AbstractSynchronousNonBlockingStepExecution.java:44)
    at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511)
    at java.util.concurrent.FutureTask.run(FutureTask.java:266)
    at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
    at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
    at java.lang.Thread.run(Thread.java:745)
Finished: FAILURE

Файлыв моем каталоге после того, как я разархивирую основной zip-файл.

05/16/2018  04:31 PM    <DIR>          .
05/16/2018  04:31 PM    <DIR>          ..
05/15/2018  12:51 PM           265,637 project-project1_1.0.0.24_bdd86e0c.zip
05/15/2018  12:51 PM         7,924,188 project-project2_1.4.0.130_43dce5e4.zip
05/15/2018  12:51 PM         6,862,842 project-project3_1.0.0.207_c7d5d471.zip
               3 File(s)     15,052,667 bytes
               2 Dir(s)  432,451,330,048 bytes free

Мне нужна аналогичная команда в windows-

for file in `ls 123_*.zip'; do unzip $file -d `echo $file | cut -d "." -f 1`; done

Ответы [ 2 ]

0 голосов
/ 16 мая 2018
bat 'for /R . %I in ("*.zip") do ( "C:\\Program Files\\7-Zip\\7z.exe" x -y -o"%~dpnI" "%~fI" )'

Мы можем использовать это в сценарии конвейера Jenkins для достижения вышеуказанного требования

0 голосов
/ 16 мая 2018
Add-Type -AssemblyName System.IO.Compression.FileSystem

function Unzip
{
    param([string]$zipfile, [string]$outpath)
    [System.IO.Compression.ZipFile]::ExtractToDirectory($zipfile, $outpath)
}

Unzip "C:\Temp\Powershell\Test.zip" "C:\Temp\Powershell\"
$DirName =  Get-ChildItem "C:\Temp\Powershell\Test"

foreach ( $item in $DirName){
    Unzip "C:\Temp\Powershell\Test\$item" "C:\Temp\Powershell\Test\"
}
...