简体   繁体   中英

Azure DevOps, Release Pipeline, Powershell task: Extracting .tar.gz shown as failure even after operation succeeds

For my Azure DevOps release pipeline, I get the build artifact (generated from a python repo) and extract its contents like this:

# Write your PowerShell commands here.

Write-Host "Extracting sources"

cp $(System.DefaultWorkingDirectory)/_repo-master-pipeline/dist/repo-1.0.0.tar.gz .

tar xvzf repo-1.0.0.tar.gz

type repo-1.0.0/foo.txt

I can see in the logs that tar is able to extract contents from the artifact. The type command which prints foo.txt succeeds too. But, I am seeing this error:

2020-11-06T10:05:32.3917349Z Extracting sources
2020-11-06T10:05:32.6074421Z ##[error]x repo-1.0.0/
<<< some lines from the tar command are printed here showing successful extraction >>>

What could I be doing wrong? Feels like the entire release pipeline will work great, if not for this false-positive error. Further tasks in this stage cannot be executed because of this.

I'm can't test it as I don't have your file, but you can try to use built in task:

# Extract files
# Extract a variety of archive and compression files such as .7z, .rar, .tar.gz, and .zip
- task: ExtractFiles@1
  inputs:
    #archiveFilePatterns: '**/*.zip' 
    destinationFolder: 
    #cleanDestinationFolder: true 

I tested your approach creating artifact in this way:

# https://stackoverflow.com/questions/64712778/azure-devops-release-pipeline-powershell-task-extracting-tar-gz-shown-as-fai/64713036#64713036

trigger: none
pr: none

pool:
  vmImage: 'ubuntu-latest'

steps:
- script: |
    ls
    tar -czvf archive.tgz *.yaml
    echo "here"
    cp archive.tgz '$(Build.ArtifactStagingDirectory)'
  displayName: 'Run a multi-line script'

- task: PublishBuildArtifacts@1
  inputs:
    PathtoPublish: '$(Build.ArtifactStagingDirectory)'
    ArtifactName: 'drop'
    publishLocation: 'Container'

and then consuming it in release pipeline:


# Write your PowerShell commands here.

Write-Host "Extracting sources"

cp '$(System.DefaultWorkingDirectory)/_kmadof.devops-manual (42)/drop/archive.tgz' .

tar xvzf archive.tgz

ls _'kmadof.devops-manual (42)'

and it works. So it could be sth with your tar.gz file. Can you download it and test it locally.

The technical post webpages of this site follow the CC BY-SA 4.0 protocol. If you need to reprint, please indicate the site URL or the original address.Any question please contact:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM