代码之家  ›  专栏  ›  技术社区  ›  VAAA

Azure管道-YAML如何解压缩下载的安全文件,然后执行exe

  •  0
  • VAAA  · 技术社区  · 3 年前

    我有一个使用YAML的Azure管道,它有一个下载压缩安全文件的任务:

    - task: DownloadSecureFile@1
      displayName: Download Testpipelineapp
      name: testPipelineapp
      inputs:
        secureFile: TestPipelineapp.zip  
    

    下载非常完美,但我需要提取内容,因为里面有一个.EXE,我需要执行。

    有什么线索可以告诉我该怎么做吗?我是YAML和Azure Devops的新手。

    0 回复  |  直到 3 年前
        1
  •  2
  •   VAAA    3 年前

    我发现如何:

    - task: ExtractFiles@1
      inputs:
        archiveFilePatterns: '$(Agent.TempDirectory)/TestPipelineapp.zip'
        cleanDestinationFolder: false
        overwriteExistingFiles: true 
    

    然后为了执行.EXE文件,我不得不添加一个CMD脚本任务

    - task: CmdLine@2
      inputs:
        script: TestPipelineapp.exe  
    
        2
  •  0
  •   jessehouwing    3 年前

    根据代理中安装的内容,有几个选项。

    托管代理附带的PowerShell版本足够新,可以使用 Expand-Archive PowerShell function 。而且 7z 安装了,所以你也可以调用它。

    - script: |
          7z x path-to-downloaded-file.zip  path-to-extract-to
          path-to-extract-to\myexecutable.exe
    
    # PowerShell
    # Run a PowerShell script on Linux, macOS, or Windows
    - task: PowerShell@2
      inputs:
        targetType: inline
        #filePath: # Required when targetType == FilePath
        #arguments: # Optional
        script: |
             Expand-archive -file path-to-downloaded-file.zip -Destinationpath path-to-extract-to
             & path-to-extract-to\myexecutable.exe
        #errorActionPreference: 'stop' # Optional. Options: default, stop, continue, silentlyContinue
        #warningPreference: 'default' # Optional. Options: default, stop, continue, silentlyContinue
        #informationPreference: 'default' # Optional. Options: default, stop, continue, silentlyContinue
        #verbosePreference: 'default' # Optional. Options: default, stop, continue, silentlyContinue
        #debugPreference: 'default' # Optional. Options: default, stop, continue, silentlyContinue
        #failOnStderr: false # Optional
        #ignoreLASTEXITCODE: false # Optional
        pwsh: true
        #workingDirectory: # Optional
    
    

    然后是内置任务:

    # 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 
        #overwriteExistingFiles: false
        #pathToSevenZipTool:
    

    https://learn.microsoft.com/en-us/azure/devops/pipelines/tasks/utility/extract-files?view=azure-devops