首页 > 解决方案 > Azure Devops Bash 说错误的文件路径,但脚本“ls”显示它是正确的

问题描述

Azure DevOps - 我正在##[error]Invalid file path '/home/vsts/work/1/s/docker-e2e'.bash 任务中获取我的 bash 脚本。

但是,- script: ls '$(System.DefaultWorkingDirectory)/docker-e2e'正确显示:

2021-06-21T17:03:29.2609773Z ls '/home/vsts/work/1/s/docker-e2e'
2021-06-21T17:03:29.2610385Z ========================== Starting Command Output ===========================
2021-06-21T17:03:29.2629573Z [command]/usr/bin/bash --noprofile --norc /home/vsts/work/_temp/f4f42ebe-2929-4239-8697-1e61770cf4df.sh
2021-06-21T17:03:29.2680715Z docker-compose-e2e.yml
2021-06-21T17:03:29.2682129Z wait-for-widgets-online.sh
2021-06-21T17:03:29.2891004Z ##[section]Finishing: CmdLine

我做错了什么?

stages:
  - stage: e2e
    displayName: run e2e tests
    pool:
      vmImage: "ubuntu-20.04"
    jobs:
      - job: runE2E
        displayName: Run E2E
        steps:
          - script: ls $(System.DefaultWorkingDirectory)/docker-e2e
          - task: Bash@3                                        
            inputs:                                             
              filePath: $(System.DefaultWorkingDirectory)/docker-e2e
              script: wait-for-widgets-online.sh         

标签: azureazure-devops

解决方案


您可以通过(应该是文件的路径,而不是目录)或(应该是脚本的内容,而不是路径)将脚本内容传递给任务BashfilePathscript

在您的情况下,它应该只是:

- task: Bash@3                                        
  inputs:                                             
    filePath: $(System.DefaultWorkingDirectory)/docker-e2e/wait-for-widgets-online.sh

推荐阅读