0

运行脚本时,我的 Yaml Azure Devops 管道失败。

情况

我在Tuto-BuildDeploy存储库中有这个脚本:

trigger:
- none
 
pool:
  vmImage: windows-latest

resources:
  repositories:
    - repository: TutoDeploy
      ref: main
      type: git
      name: Tuto-Deploy

jobs:
 - job: checkout
   steps:
   - checkout: self
   - checkout: TutoDeploy

 - job: Deploy
   dependsOn: 
   - checkout
   steps:
   - task: AzurePowerShell@5
     inputs:
      azureSubscription: 'ToAzureCnx'
      ScriptType: 'FilePath'
      ScriptPath: .\Tuto-Deploy\build.ps1
      azurePowerShellVersion: 'LatestVersion'

这是我的 build.ps1 文件:

param
(
)

$resourceGroup = "RG2"
$location = "westeurope"

New-AzResourceGroup -Name $resourceGroup -Location $location -Force

发生了什么事

我收到此错误消息:

##[错误]术语“D:\a\1\s\Tuto-Deploy\build.ps1”未被识别为 cmdlet、函数、脚本文件或可运行程序的名称。检查名称的拼写,或者如果包含路径,请验证路径是否正确并重试。

我测试了什么

我补充说:

- script: dir $(Build.SourcesDirectory)\Tuto-Deploy

检查 build.ps1 是否已下载。

我还尝试从Tuto-Deploy项目中的管道运行它:

trigger:
- main
 
pool:
  vmImage: windows-latest
 
steps:
- task: AzurePowerShell@5
  inputs:
    azureSubscription: 'ToAzureCnx'
    ScriptType: 'FilePath'
    ScriptPath: '$(System.DefaultWorkingDirectory)/build.ps1'
    azurePowerShellVersion: 'LatestVersion'

它工作正常。

所以我认为我的剧本没有问题。

我需要的

我不明白为什么它不起作用。我能做什么?

谢谢

4

1 回答 1

1

您在单独的作业中运行了结帐步骤。这导致了问题。

每个作业都将在新的代理中运行。见这里。因此,在第一个作业中下载的 TutoDeploy 存储库在第二个作业中不可访问。您应该将结帐作业与部署作业结合起来。如果仅在签出步骤成功时才需要执行 AzurePowershell 任务,则可以为它设置条件。见下文:

- job: 
   
   steps:
   - checkout: self
   - checkout: TutoDeploy

   - task: AzurePowerShell@5
     inputs:
      azureSubscription: 'ToAzureCnx'
      ScriptType: 'FilePath'
      ScriptPath: .\Tuto-Deploy\build.ps1
      azurePowerShellVersion: 'LatestVersion'
    condition: succeeded()
于 2021-06-07T08:06:23.523 回答