标签: azure-pipelines

如果特定文件已更改,合并或构建会失败?

在 VSTS 上,我们想要在某些分支上保护一些文件。如果特定文件已更改,合并/构建如何会失败?

一等奖是在构建服务器上配置它,在本例中是 VisualStudio.com (VSTS / GIT)。

场景:我们有各种发布分支 v1、v2、v3。我们希望保护 packages.json 文件,以防止任何人更新这些分支上的 Nuget 包。因此,如果 package.json 文件在拉取请求中已更改为“v3”,则不允许合并。

azure-devops azure-pipelines azure-pipelines-release-pipeline

3
推荐指数
1
解决办法
1461
查看次数

如何让我的 Windows 服务解决方案使用 VSTS Build 生成工件?

我在 Visual Studio Team Services(又名 Visual Studio Online?老实说我不太确定它的正确名称)中有一个构建定义,它没有生成工件,我真的不确定为什么。解决方案文件中的主要项目是使用 TopShelf 构建的 Windows 服务。我怀疑 Visual Studio 生成任务中的 MSBuild 参数可能是错误的。我从正在运行的 MVC 项目的构建定义中复制了它们,但我突然想到它们可能不适用于 Windows 服务。

他们来了:

/p:DeployOnBuild=true 
/p:WebPublishMethod=Package 
/p:PackageAsSingleFile=true 
/p:SkipInvalidConfigurations=true     
/p:PackageLocation="$(build.artifactstagingdirectory)\\"
Run Code Online (Sandbox Code Playgroud)

我稍后在此过程中有一个“复制文件”任务和一个“发布构建工件”任务,但显然该任务$(build.artifactstagingdirectory)\\是空的。我收到这个警告:

##[警告]目录“d:\a\1\a”为空。不会添加任何内容来构建工件

奇怪的是,在我发布符号的过程中的另一项任务中,一切似乎都进展顺利。

还有一点:我正在使用托管构建代理。不确定这是否重要。

这就是我能想到提供的所有相关信息。我在这里离基地很远吗?我过去使用过 Octopus Deploy,并且我知道我必须在我的服务上安装 Octopack。我需要在这里做类似的事情吗?

windows-services topshelf azure-devops azure-pipelines

3
推荐指数
1
解决办法
1530
查看次数

如何从 VSTS 构建中的复制任务中排除 obj 文件夹?

我在内容部分尝试了多种组合,但每次 obj 文件夹仍然被复制到我的构建中。

这是我的源目录结构 在此输入图像描述

我在我的部分使用了以下组合Contents

1. **\!(obj|V1Server.vshost.exe|V1Server.vshost.exe.config| .pdb| .xml| .cache| .cs| .csproj| .CopyComplete| .ico| .resx| .resources| .txt) bin\$(BuildConfiguration) bin\App.config

2.obj\!(*)

3.!(对象)

4.!(对象)\

我的模式匹配语法有什么问题?

azure-devops azure-pipelines

3
推荐指数
1
解决办法
7622
查看次数

VSTS 没有可用的测试

我是第一次使用 Visual Studio Team Services,并使用 MSTest 项目设置 C# 类库的简单场景。我想设置自动构建,它也执行测试。然而这不起作用。我对此进行了很多搜索,大多数问题似乎与 NUnit 等不同的测试适配器有关。这里的情况并非如此,因为我只是使用默认的测试框架。

谁能帮助我并让我知道我错过了什么步骤或做错了什么?

唯一的消息是“警告:没有可用的测试......”,其中包含大量引用的 dll。


这是完整的日志:

2017-11-20T08:43:16.5294822Z ##[节]开始:VsTest - testAssemblies 2017-11-20T08:43:16.5294822Z ==================== =================================================== ======== 2017-11-20T08:43:16.5294822Z 任务:Visual Studio 测试 2017-11-20T08:43:16.5294822Z 描述:使用 Visual Studio 测试运行程序运行测试 2017-11-20T08:43: 16.5294822Z 版本:2.2.3 2017-11-20T08:43:16.5294822Z 作者:微软公司 2017-11-20T08:43:16.5294822Z 帮助:更多信息 2017-11-20T08:43:16.5294822Z ============================================ ======================================== 2017-11-20T08:43:17.5500059Z 运行使用 vstest.console.exe 进行本地测试 2017-11-20T08:43:17.5500059Z ================================== ======================== 2017-11-20T08:43:17.5520059Z 测试选择器:测试组件 2017-11-20T08:43:17.5520059Z 测试程序集: **\*test*.dll,!**\obj\** 2017-11-20T08:43:17.5520059Z 测试筛选条件:空 2017-11-20T08:43:17.5530063Z 搜索文件夹:d:\ a\1\s 2017-11-20T08:43:17.5540068Z 运行设置文件: d:\a\1\s 2017-11-20T08:43:17.5540068Z 并行运行: false 2017-11-20T08:43: 17.5540068Z 隔离运行: false 2017-11-20T08:43:17.5592822Z 自定义适配器的路径: d:\a\1\s 2017-11-20T08:43:17.5592822Z 其他控制台选项: null 2017-11-20T08 :43:17.5600072Z 启用代码覆盖率: false …

automated-tests unit-testing azure-devops azure-pipelines

3
推荐指数
1
解决办法
6792
查看次数

VSTS 构建错误 MC3074“Interaction.Triggers”不存在

尝试使用托管 VS2017 构建代理在 VSTS 上构建 WPF 应用程序时出现以下错误:

Modules\ManualOperation\ManualOperationDialog.xaml(61):Modules\ManualOperation\ManualOperationDialog.xaml(61,22): 错误 MC3074: XML 命名空间中不存在标签“Interaction.Triggers” http://schemas.microsoft.com /表达式/2010/交互性'。第 61 行位置 22。

在 Visual Studio 2017 版本 15.5.1 中构建相同的项目,没有错误。自上次由 VSTS 构建以来,该项目也没有发生任何变化。

项目具体情况:

  1. .NET框架4.6.1
  2. 引用 System.Windows.Interactivity 版本 4.5.0

System.Windows.Interactivity 属性是: 在此输入图像描述

我们在 VSTS 上建立了一个非常基本的构建。这非常令人沮丧。任何帮助,将不胜感激。

azure-pipelines

3
推荐指数
1
解决办法
3833
查看次数

如何使用 Azure DevOps REST APi 获取构建作业?

因此,我可以获得构建详细信息,但它不包含有关构建作业的任何信息。例如,每个构建作业都在构建代理上运行 - 我如何使用 REST Api 获取此部分?

我们谈论的是 vNext 构建,而不是 XAML。

azure-devops azure-pipelines azure-devops-rest-api

3
推荐指数
1
解决办法
4024
查看次数

您可以在Azure Pipeline步骤中使用pipenv来安装依赖项吗?

Azure Pipeline 示例显示使用 pip 安装需求。

https://learn.microsoft.com/en-us/azure/devops/pipelines/languages/python?view=azure-devops

- script: pip install -r requirements.txt
  displayName: 'Install requirements'
Run Code Online (Sandbox Code Playgroud)

期待已久的东西还没有出现,那么当你一直在使用而你有但没有的pip -p时候,Pythonista 该怎么办呢?pipenvPipfilePipfile.lockrequirements.txt

azure-pipelines pipenv

3
推荐指数
1
解决办法
3565
查看次数

如何在 AzureDevOps 中使用旧名称重新创建代理池?

我在 AzureDevOps 中创建新的代理池时遇到问题。

我想要做的是删除一台旧的自托管主机并部署一台新主机。然而,旧主机使用的代理池和新主机使用的代理池是由同事创建的。这导致我无法删除现有的注册代理,导致在新主机部署期间发生冲突。为了解决此问题,我能够删除代理池。

现在,当我想创建一个同名的新池时,我收到错误消息

“未找到标识符为 76 的代理池”。

有没有人看到过这个错误消息并且或者知道我可以采取什么措施?

预期: 创建一个与旧池同名的新代理池。

实际: 我收到错误消息“未找到标识符为 76 的代理池”。

代理创建图像

错误消息图像

pool agent azure-devops azure-pipelines

3
推荐指数
1
解决办法
2005
查看次数

当覆盖率低于 dotnet 测试的目标时,Azure DevOps 构建不会失败

我在 Azure DevOps 中有一个用于 ASP.NET Core 应用程序的构建管道,并且希望将其与批准拉取请求的条件一起使用。

steps:
      - script: dotnet restore
        displayName: 'Run command: dotnet restore'

      - script: >
                dotnet test 
                /p:CollectCoverage=true 
                /p:CoverletOutputFormat=cobertura 
                /p:Threshold=80 
                /p:ThresholdStat=total 
                /p:Exclude="[*xunit.*]*"
        displayName: 'Run command: dotnet test'
Run Code Online (Sandbox Code Playgroud)

我希望当代码覆盖率(使用封面)未通过时,构建失败。但是,尽管验收标准未通过,但即使生成了日志消息,该步骤仍会成功运行。

coverlet.msbuild.targets(41,5): error : 总行覆盖率低于指定的 80 coverlet.msbuild.targets(41,5): error : 总分支覆盖率低于指定的 80 coverlet.msbuild.targets( 41,5): 错误:总方法覆盖率低于指定的 80

在这种情况下有可能强制失败吗?

code-coverage azure-devops asp.net-core azure-pipelines

3
推荐指数
1
解决办法
2547
查看次数

Azure DevOps yaml 管道,下载的工件为空

将管道从经典转换为 YAML(所以我知道它有效)。

我构建并发布工件任务如下所示:

  - task: PublishPipelineArtifact@1
    displayName: 'Publish Pipeline Artifact'
    inputs:
      targetPath: '$(Build.ArtifactStagingDirectory)/MyArtifact'
      artifact: MyArtifact
Run Code Online (Sandbox Code Playgroud)

构建时的结果如下所示:

在此输入图像描述

然后我想将其部署到 web 应用程序 YAML:

- stage: Dev
  jobs: 
  - job: DeployApp
    displayName: Deploy Web App
    pool:
      name: myPrivate
      demands: msbuild
    steps:
    - task: DownloadPipelineArtifact@2
      inputs:
        artifact: MyArtifact
    - task: AzureRmWebAppDeployment@4
      displayName: 'Deploy App'
      inputs:
        WebAppKind: 'Web App On Windows'
        azureSubscription: 'edited out...'
        WebAppName: webAppName
        package: '$(System.ArtifactsDirectory)'
        enableXmlTransform: true
Run Code Online (Sandbox Code Playgroud)

这会在 Azure DevOps 中产生以下输出:

在此输入图像描述

上有差异,但由于尺寸非常匹配,我很高兴。

然后我在部署中遇到错误,因此我开始查看 Kudo,并可以看到在 SitePackages 中我的所有包都是 1 kb(或空...)。我预计 61.2 MB。

在此输入图像描述

我采取了我的工作经典部署,在那里我有这一行:

packageForLinux:'$(System.DefaultWorkingDirectory)/_MyArtifact/MyArtifact/MyApplication.zip' …
Run Code Online (Sandbox Code Playgroud)

azure-devops azure-pipelines

3
推荐指数
1
解决办法
5391
查看次数