我正在尝试使用本地 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。
AzureStaticWebApp@0 任务只能在 Linux 代理上运行。它不适用于 Windows 代理。
要运行此任务,您可以:
使用 Linux VM 上的 Microsoft 托管代理,例如
ubuntu-24.04
、ubuntu-22.04
(ubuntu-latest
) 或 ubuntu-20.04
。
在您自己的 Linux 计算机上安装自托管代理。