Azure DevOps Pipeline 无法使用自托管 Windows 代理部署 Azure 静态 Web 应用程序

问题描述 投票:0回答:1

我正在尝试使用本地 Windows 计算机上的自托管代理从 Azure DevOps 部署我的第一个 Azure 静态 Web 应用程序。代理已设置并在线显示在 Azure DevOps 设置中。但是,我在管道中遇到了

AzureStaticWebApp
任务的问题。

这是管道的 YAML 配置:

name: Azure Static Web Apps CI/CD

pr:
  branches:
    include:
      - master
trigger:
  branches:
    include:
      - master

jobs:
- job: build_and_deploy_job
  displayName: Build and Deploy Job
  condition: or(eq(variables['Build.Reason'], 'Manual'),or(eq(variables['Build.Reason'], 'PullRequest'),eq(variables['Build.Reason'], 'IndividualCI')))
  pool:
    name: Local Agent Pool
  variables:
  - group: Azure-Static-Web-Apps-victorious-beach-0d42cb803-variable-group
  steps:
  - checkout: self
    submodules: true
  - task: AzureStaticWebApp@0
    inputs:
      azure_static_web_apps_api_token: $(AZURE_STATIC_WEB_APPS_API_TOKEN_VICTORIOUS_BEACH_0D42CB803)
      app_location: "/"
      api_location: ""
      output_location: "build"
      skip_api_build: true

现在的问题是:当我运行管道时,AzureStaticWebApp 任务失败并显示以下错误消息:

2024-10-04T14:42:16.5040695Z [command]C:\WINDOWS\system32\bash.exe C:\agent\_work\_tasks\AzureStaticWebApp_18aad896-e191-4720-88d6-8ced4806941a\0.246.1\launch-docker.sh
2024-10-04T14:42:22.3067301Z /bin/bash: C:agent_work_tasksAzureStaticWebApp_18aad896-e191-4720-88d6-8ced4806941a0.246.1launch-docker.sh: No such file or directory
2024-10-04T14:42:22.3142262Z 
2024-10-04T14:42:22.3238448Z ##[error]Error: The process 'C:\WINDOWS\system32\bash.exe' failed with exit code 127
2024-10-04T14:42:22.3285032Z ##[section]Finishing: AzureStaticWebApp

我认为问题似乎与路径的处理方式有关。失败的命令似乎使用 Windows 样式的路径,但 Bash 环境需要 Linux 样式的路径。我相信它应该看起来像这样:

C:\WINDOWS\system32\bash.exe mnt\c\agent\_work\_tasks\AzureStaticWebApp_18aad896-e191-4720-88d6-8ced4806941a\0.246.1\launch-docker.sh

但是我不知道要更改它,也不知道是否应该在某个地方更改它或者我的配置是否不正确......有什么帮助吗?

WSL 已正确安装,并且在 WSL 环境中也可以访问 docker。

bash azure azure-devops azure-pipelines azure-static-web-app
1个回答
0
投票

AzureStaticWebApp@0 任务只能在 Linux 代理上运行。它不适用于 Windows 代理。

enter image description here

要运行此任务,您可以:

  1. 使用 Linux VM 上的 Microsoft 托管代理,例如

    ubuntu-24.04
    ubuntu-22.04
    (
    ubuntu-latest
    ) 或
    ubuntu-20.04

  2. 在您自己的 Linux 计算机上安装自托管代理。


© www.soinside.com 2019 - 2024. All rights reserved.