从 Visual Studio Team Services 将 Gulp Build 文件夹部署到 Azure

Deploy the Gulp Build Folder To Azure from Visual Studio Team Services

我刚开始在我的一个项目中使用 VSO。我已经创建了构建定义并且构建成功。当我试图通过抛出错误

来为其构建失败创建发布定义时
System.Management.Automation.RuntimeException: No files were found to deploy with search pattern C:\a8bddd5b\**\*.zip

需要 .zip 文件。由于我需要部署由 gulp build 创建的分布式文件夹,我将 Web 部署包路径指定为

$(System.DefaultWorkingDirectory)/{built name}

非常感谢任何帮助

您应该添加构建步骤,为 gulp 步骤的输出文件夹创建扩展名为 .zip 的存档。您的步骤应该类似于

VSO/VSTS build 有一个任务可用 Archive files 来实现相同的目标。

或者,如果标准存档文件步骤对您不起作用,您可以使用 powershell 步骤。 powershell 命令将如下所示。

[io.compression.zipfile]::CreateFromDirectory($Source, $Destination) 
  • 源应该是您希望部署的 gulp 输出中的所有 files/folders
  • 此处的目标应对应于 webdeploy/WebApp 部署步骤的输入。

您也可以使用此扩展来创建 ZIP 文件。我用它来处理与您类似的情况:

https://marketplace.visualstudio.com/items?itemName=trackyon.trackyonadvantage

"Azure Web App Deployment" 任务需要 web 部署 zip 包。您可以再添加一项任务来为构建输出创建一个 zip 包,如其他两个答案所示,或者在 "gulpfile.js" 中添加一些代码以在 gulp 构建期间生成一个 zip 包,然后发布 zip打包到工件。

如果您不想为构建输出创建 zip 包,那么您可以使用 FTP Uploader task to deploy the build to Azure Web App via FTP Deploy.

您可以使用 PowerShell 创建一个 zip 文件,假设您 运行 使用 Windows 代理。

Command Line任务

命令:powershell 参数:-Command "&{Add-Type -assembly 'system.io.compression.filesystem'; [io.compression.zipfile]::CreateFromDirectory('$(Build.StagingDirectory)\Zip', '$(Build.StagingDirectory)$(BuildConfiguration)Deploy.zip')}"

显然,将 $(Build.StagingDirectory)\Zip 替换为您想要压缩的任何文件夹,并将 $(Build.StagingDirectory)$(BuildConfiguration)Deploy.zip 替换为您想要命名的文件。