我正在 vsts 上设置 ASP.NET Core Web 应用程序的构建和发布。
我的构建正在执行以下任务:
这一切都很好...
该发布是“Azure 应用服务部署”任务。“包或文件夹”是 $(System.DefaultWorkingDirectory)/MyBuild/MyApp_Package 它是“工作”的,因为它将 zip 文件部署到 Azure Web 应用程序,但不提取文件。
如何让它在 azure 网站上提取 zip?
我想在发布版本时访问VSTS源代码存储库(Git)中的约10个文件。我已将PowerShell脚本保存在VSTS源存储库中,并且在部署后,我需要运行这些脚本文件。
所以我在发布定义中添加了部署后的Power Shell任务,但不确定如何访问这些脚本文件以及如何运行这些脚本文件?我可以从VSTS构建定义中发布这些脚本文件,并且可以在发布定义时使用,但是我不想以这种方式使用。
我希望发布定义独立运行。
git azure-devops azure-pipelines azure-pipelines-release-pipeline
我正在尝试为我们的主分支上的 PR 设置一些构建验证(我们正在使用 Git 和 VSTS)。我添加了一些构建策略以根据已更改的文件启动各种构建。对于某些背景,我们在流程的早期创建 PR,以便我们可以在开发功能分支时跟踪更改并添加评论。
现在,我希望这些构建能够运行并成功,以便完成 PR,但是,我不希望这些构建的输出(工件)被发布。我们的发布查看要部署的最新构建工件,在这种情况下,最新的构建工件将来自 PR。如果我们确实允许发布来自 PR 的这些构建工件,那么我们会将功能分支代码(来自 PR)发布到我们的主站点,这是不可取的(我们有一个单独的发布来处理我们的功能分支机构)。
本质上,在做 PR 时,我只想运行构建以确保一切都是 kosher 的,然后在构建完成后扔掉它。
除了为 PR 验证创建构建定义之外,我不确定我能做什么。我用谷歌搜索并四处询问,但我要么没有提出正确的问题,要么答案并不像我希望的那么简单。
希望我已经包含了足够的细节来解释我的问题。
如何在 PR 上运行构建验证而无需发布选择并部署由验证构建产生的构建工件?
我尝试向发布任务添加条件(也尝试将发布置于一个阶段并有条件地运行它)。但是,当我发布新版本时,它仍然会看到运行的构建定义。现在,我想如果我尝试发布该构建定义,它会失败,因为没有创建工件。但我什至不想在发布时看到构建定义(不想意外选择它)。
git azure-devops azure-pipelines azure-pipelines-release-pipeline
这是这个问题的后续问题。原始问题中的答案对我有所帮助,但我被困在其他地方。提醒一下,我想使用发布配置文件部署我的应用程序。我在 Azure 中的 Web 应用程序在 wwwroot 中有两个子文件夹,其中之一称为backend。我想将我的应用程序部署到该文件夹。我不确定为什么 msdeploy 想要创建任何东西,因为 Web 应用程序已经存在 - 我只需要在后端文件夹中获取工件。
这是日志的相关部分(一些名称更改为xyz):
2018-06-14T09:19:25.0295238Z 开始执行 msdeploy.exe
2018-06-14T09:19:25.0323018Z“C:\Program Files\IIS\Microsoft Web Deploy V3\msdeploy.exe”-source:package='D:\a\r1\a\artifacts\drop\xyz.zip ' -dest:auto,computerName="https://xyz.scm.azurewebsites.net:443/msdeploy.axd?site=xyz/backend",userName="$xyz",password="***",authtype ="basic",includeAcls="False" -verb:sync -disableLink:AppPoolExtension -disableLink:ContentExtension -disableLink:CertificateExtension -setParamFile:"D:\a\r1\a\artifacts\drop\xyz.SetParameters.xml" - enableRule:DoNotDeleteRule -retryAttempts:6 -retryInterval:10000
2018-06-14T09:19:25.6154385Z 信息:使用 ID '89f1210b-39ba-4758-b7ee-76a06407a503' 连接到远程服务器。
2018-06-14T09:19:28.0800802Z 信息:创建应用程序(默认网站)
2018-06-14T09:19:28.2012951Z ##[调试]rc:1
2018-06-14T09:19:28.2013216Z ##[调试]rc:1
2018-06-14T09:19:28.2013360Z ##[调试]成功:假
2018-06-14T09:19:28.2013523Z ##[调试]成功:假
2018-06-14T09:19:28.2073234Z ##[错误]无法将 Web 包部署到应用服务。
2018-06-14T09:19:28.2081930Z ##[debug]Processed: ##vso[task.issue type=error;]无法将 Web 包部署到应用服务。
2018-06-14T09:19:28.2082198Z ##[调试]{}
2018-06-14T09:19:28.2082470Z ##[debug]System.DefaultWorkingDirectory=D:\a\r1\a
2018-06-14T09:19:28.2083178Z ##[error]错误代码:ERROR_USER_NOT_AUTHORIZED_FOR_CREATEAPP 更多信息:使用 Web 管理服务连接时,无法使用指定的提供程序(“createApp”)完成操作。如果服务器管理员未授权用户执行此操作,则会发生这种情况。createApp http://go.microsoft.com/fwlink/?LinkId=178034 了解更多信息: …
azure azure-web-app-service azure-pipelines-release-pipeline
我有一个 VSTS Release Definition,它传递了两个变量,我无法控制其中的内容。它们包含一个逗号分隔的名称字符串和一个逗号分隔的 ID 字符串,它们与按索引的名称相对应。
我想使用一个代理阶段,将并行选项设置为多配置,并将乘数字段设置为 ID 字符串,因此该阶段为每个 ID 运行一次。我还想使用与该阶段中的 ID 对应的名称,但我不确定如何执行此操作。
如果我将乘数设置为两个变量(ID 和名称),它会运行两个数组的笛卡尔积(交叉连接)的阶段,这是不需要的。
例子:
IDs: "A1, A2, A3"
Names: "Anna, Adam, Abby"
Runs the phase 9 times: "A1" & "Anna", "A2" & "Anna", "A3" & "Anna"
"A1" & "Adam", "A2" & "Adam", "A3" & "Adam"
"A1" & "Abby", "A2" & "Abby", "A3" & "Abby"
Run Code Online (Sandbox Code Playgroud)
如果我将乘数设置为 ID 变量,它只会运行阶段正确的次数,但我无法弄清楚如何将相应的名称传递到阶段。
这甚至可能吗?
提前致谢!
无论如何,是否可以根据分支和文件夹更改触发构建?
例如,我在 Visual Studio 解决方案中有多个 Web 项目。当我的主分支上的文件夹更改时,我只想为该项目而不是整个解决方案触发构建。
谢谢!
azure-devops azure-pipelines azure-pipelines-release-pipeline
我正在开发一个开发 Azure DevOps 发布任务扩展的项目。最近,当发布任务运行时,我在日志中多次打印此警告消息 - “警告:将 Cipheriv 用于 aes-256-ctr 的计数器模式”。
我没有更早得到它。当我开始收到此错误时,我只更改了一些 console.log(..),甚至没有更改任何可能触发此错误的代码。(可能是一些 npm 依赖更新!)
关于为什么我会收到此错误以及如何修复它的任何想法!如果没有,如何禁用它?
PS - 我知道有人问过这个问题,可能会被归类为重复。但是我问的是在 Azure DevOps 发布任务的上下文中,其他是独立的 node.js 项目。而且,这些修复对我不起作用。
node.js azure-devops azure-pipelines-build-task azure-pipelines azure-pipelines-release-pipeline
我是 VSTS 和 Azure Kubernetes 的新手。我正在构建一个 VSTS CD 管道。我在我的管道中添加了一个 Deploy to Kubernetes 任务。我正在执行 get 命令并尝试将输出存储在输出变量中(可在 Deploy to kubernetes 任务的底部找到)。我已经设置了变量名。
我正在尝试获取上述输出变量的值。我已经使用命令行任务为变量设置了一个值,如下所述
echo '##vso[task.setvariable variable=myStatusVar;isSecret=false;]$(myvar)'
其中myvar是变量,在Deploy to kubernetes任务中设置为输出变量。
之后,在另一个命令行任务中,我尝试访问myStatusVar变量值,但是当我执行发布管道时,它显示以下消息:
未找到 myvar 命令
谁能告诉我,如何使用 VSTS 管道的 Deploy to kuberentes 任务的输出变量?
kubernetes azure-devops azure-pipelines azure-pipelines-release-pipeline
我一直在阅读有关旁加载 UWP 应用程序的自动更新的信息,我想为我们的一个企业产品探索这种方法。我可以找到从 Visual Studio生成的文档.appinstaller,但找不到从 DevOps/VSTS 生成它的文档。有没有办法做到这一点?也许是一个构建参数MSBuild?还是发布管道中的任务?
我知道如果需要,我们可以使用 Visual Studio 或从头开始制作文件,但我们正在尝试更多地使用 DevOps 并减少本地构建。谢谢!
msbuild uwp azure-devops azure-pipelines azure-pipelines-release-pipeline
我正在使用任务组在 Azure DevOps 中为 AspNet Core Web Api 创建一个构建管道,该任务组首先安装 .Net Core SDK (2.2),然后使用dotnet restore(使用 VSTS 源)进行包还原,然后构建项目。
在构建步骤,我提供以下参数:
--configuration Release --runtime $(Target Platform) --no-restore /p:Version=$(Major Version).$(Minor Version).$(Build.BuildNumber).
到buildstep 的所有步骤都成功了。但是,我在构建步骤中收到以下错误:
[command]C:\windows\system32\chcp.com 65001
Active code page: 65001
[command]C:\hostedtoolcache\windows\dotnet\dotnet.exe build D:\a\1\s\WebApp\WebApp.csproj --configuration Release --runtime linux-x64 --no-restore /p:Version=1.0.40
Microsoft (R) Build Engine version 16.2.32702+c4012a063 for .NET Core
Copyright (C) Microsoft Corporation. All rights reserved.
C:\hostedtoolcache\windows\dotnet\sdk\2.2.401\Sdks\Microsoft.NET.Sdk\targets\Microsoft.PackageDependencyResolution.targets(208,5): error NETSDK1047: Assets file 'D:\a\1\s\WebApp\obj\project.assets.json' doesn't have a target for '.NETCoreApp,Version=v2.2/linux-x64'. Ensure that restore has …Run Code Online (Sandbox Code Playgroud) nuget-package-restore azure-devops azure-pipelines-release-pipeline
azure-pipelines-release-pipeline ×10
azure-devops ×8
git ×2
azure ×1
kubernetes ×1
msbuild ×1
node.js ×1
uwp ×1