Azure DevOps管道中AzureCLI任务无法找到脚本文件的求助
解决Azure DevOps管道中AzureCLI@2任务找不到脚本的问题
Azure DevOps管道克隆仓库后的默认工作目录是仓库根目录,和存放管道文件的pipelines文件夹同级,所以引用scripts目录下的脚本时,直接从根目录指向脚本即可,不需要基于管道文件的位置做相对跳转。
正确的AzureCLI@2任务配置示例
- task: AzureCLI@2 inputs: azureSubscription: '你的Azure订阅名称' scriptType: 'bash' scriptPath: 'scripts/your-script-file.sh' # 直接用根目录下的scripts路径 # 如需传递参数,可添加以下行 # arguments: 'arg1 arg2'
排查路径问题的关键步骤
确认当前工作目录与文件结构
在AzureCLI@2任务前添加一个Bash任务,打印当前目录和文件列表,验证脚本是否存在:- task: Bash@3 inputs: targetType: 'inline' script: | pwd ls -la ls -la scripts/执行后查看日志,确认
scripts目录和目标脚本是否存在,同时检查文件名大小写是否正确(Linux环境大小写敏感)。避免错误的路径写法
不要用../scripts/your-script-file.sh这类路径——管道工作目录已经是根目录,../会指向根目录的上级,必然找不到文件。inlineScript方式的正确写法
如果使用inlineScript直接写命令,确保Azure CLI命令本身正确,示例:- task: AzureCLI@2 inputs: azureSubscription: '你的Azure订阅名称' scriptType: 'bash' inlineScript: | # 直接写入原脚本中的Azure CLI命令 az resource group list az storage account create --name mystorage --resource-group myrg --location eastus
额外注意事项
- 确认
scripts文件夹及内部脚本已经完全推送到仓库,可在仓库网页端查看目录结构验证。 - 如果脚本需要执行权限,可在Bash任务中添加
chmod +x scripts/your-script-file.sh赋予权限。
内容的提问来源于stack exchange,提问作者E. Erfan
相关产品推荐
相关产品推荐

