我有一个包含两个解决方案的存储库。这两个解决方案文件都存在于根目录中,本质上是这样的:
/WebsiteOneDirectory/
/WebsiteTwoDirectory/
/.gitignore
/WebsiteOne.sln
/WebsiteTwo.sln
Run Code Online (Sandbox Code Playgroud)
我是否可以构建指向此存储库的多个管道来构建不同的解决方案?当我创建我的第一个管道时,它正在为 repo 生成一个 azure-pipelines.yml 文件,所以我不确定如何/如果我将能够拥有多个管道配置,如果这是它期望的固定名称。
我正在尝试使用 Azure DevOps Pipelines 从 GitHub 构建我的 .NET Core 2.1 解决方案。它包含一个 SQL 项目,其 TargetFrameworkVersion 为v4.6.2. 这个项目总是无法构建。
Build FAILED.
/home/vsts/work/1/s/MySolution/MyDatabase/MyDatabase.sqlproj : warning NU1503: Skipping restore for project '/home/vsts/work/1/s/MySolution/MyDatabase/MyDatabase.sqlproj'. The project file may be invalid or missing targets required for restore. [/home/vsts/work/1/s/MySolution/MySolution.sln]
/home/vsts/work/1/s/MySolution/MyDatabase/MyDatabase.sqlproj(57,3): error MSB4019: The imported project "/usr/share/dotnet/sdk/2.1.403/Microsoft/VisualStudio/v15.0/SSDT/Microsoft.Data.Tools.Schema.SqlTasks.targets" was not found. Confirm that the path in the <Import> declaration is correct, and that the file exists on disk.
1 Warning(s)
1 Error(s)
Run Code Online (Sandbox Code Playgroud)
如何为构建服务器引用或包含这些目标?它在 VS2017 中构建良好。我花了一天多的时间打猎,找不到关于这个问题的任何信息。
我正在为我的 .Net Core 项目创建一个新的 CI Azure Pipeline。在 Azure Pipeline 中,Microsoft 提供了三个用于构建的任务,即 .Net Core、Visual Studio Build 和 MSBuild。
由于所有三个任务都执行构建操作,我们是否有任何特定标准来选择一项任务而不是另一项任务?
我已经浏览了 Microsoft 提供的文档,但我找不到关于此的详细信息。
编辑 注意:我知道 Visual Studio 构建任务有一个版本控制子任务,但这也可以通过单独的自定义任务来实现。
continuous-integration .net-core azure-devops azure-pipelines
我可能遗漏了一些东西,但找不到从 Azure DevOps 中项目的构建管道执行页面导出测试运行结果的方法。
当然,有一个“下载日志”选项,从技术上讲,您可以在其中找到来自测试执行步骤的日志以及其他内容,但这似乎不是定期获取此类数据的最佳/正确方法与如何从其他开箱即用的构建系统(TeamCity/Jenkins 等)获取测试结果相比,这是法规/审计/文档目的的基础。
那么从系统中获取此类数据的最佳方法是什么 - 自定义任务还是其他?
unit-testing azure azure-devops azure-pipelines-build-task azure-pipelines
我有一个使用托管(免费)AzureDevops 管道的问题。我有一个小的 .NET Core 项目,我想创建一个 Azure Devops 管道,其中完成以下操作
我在 Azure Devops 中的项目中有以下提要设置
哪个有这个提要的连接信息
..../NugetProjects/_packaging/nugetprojectstestfeed/nuget/v3/index.json
它还应用了以下安全性(注意项目集合构建服务设置为“贡献者”)
这是从 Microsoft 官方文档的这一段中说的
若要发布到 Azure Artifacts 源,请将项目集合生成服务标识设置为源上的贡献者。
然后我有这个构建管道设置(Yaml)
# ASP.NET Core
# Build and test ASP.NET Core projects targeting .NET Core.
# Add steps that run tests, create a NuGet package, deploy, and more:
# https://docs.microsoft.com/azure/devops/pipelines/languages/dotnet-core
trigger:
- master
pool:
vmImage: 'ubuntu-latest'
variables:
buildConfiguration: 'Release'
Major: '1'
Minor: '0'
Patch: '0'
steps:
- task: DotNetCoreCLI@2
displayName: 'Restore'
inputs:
command: …Run Code Online (Sandbox Code Playgroud) 我已经开始使用多级管道进行一些测试,以便能够将管道作为代码,但考虑到我们也有发布管道和当前的多级管道,我对管道的使用感到有些困惑可以在门和多个环境中完成发布管道的工作,只是在我更喜欢的基于代码的管道中。
我的问题是什么时候应该使用它们中的每一个?
continuous-integration automation azure-devops azure-pipelines
我设计了一个 CI/CD 管道来从 github 部署一个 ARM 模板,以使用 ARM 模板在我的资源组中创建一个 api 管理实例。
在我的发布日志中,我不断收到此警告“无法找到密钥的 loc 字符串:CorrelationIdForARM”,这会减慢进程的速度。尽管经过很长时间成功创建资源后,发布仍显示为失败。
如果我们使用构建管道的 UI,我们会看到“启用系统诊断”复选框,如下所示。还有一个默认变量“system.debug”。
这两者有什么区别?
这里的一条评论指出两者可能是相同的。但如果我们将system.debug设置为'true','启用系统诊断'仍然是未选中的。
我刚刚开始使用 Azure Pipelines 中的运行时参数,有些东西我不太明白。考虑这个 Azure Pipelines YAML:
parameters:
- name: deployEnvironment
displayName: Select your target environment.
type: string
default: Build_only
values:
- Build_only
- TST
- PP
- P
- name: releaseName
type: string
default: ''
steps:
- task: ....
Run Code Online (Sandbox Code Playgroud)
为什么 releaseName 是必需参数?我希望通过指定default: ''将其留空是可选的。文档没有提到是否可以将参数设为可选。
跟进 Kryzstof 的回答,我进一步试验,似乎只包含空格的字符串被解释为空:
似乎这个单个空格被解释为空(我也尝试过多个空格)。
parameters:
- name: myString
type: string
default: ' '
steps:
- task: PowerShell@2
inputs:
targetType: inline
script: |
$MS = $ENV:MS
Write-Host "myString value is '$MS'"
Write-Host "Its length is …Run Code Online (Sandbox Code Playgroud) 我有一个长期运行的 DevOps 管道,每天早上都会设置一个复杂的环境。
它有一个参数;我们称之为“版本”。
我需要安排管道每天早上自动运行 3 次,版本值为 1、2 和 3。
查看触发器,调度触发器和管道触发器似乎都不允许传递参数值。
有没有办法做到这一点?重要的是它们彼此独立运行。每次执行需要 30 到 60 分钟。因此,一个接一个地循环运行它们并不是一种选择。
这是我的 YAML 代码当前的样子:
trigger: none
pr: none
schedules:
- cron: 0,5,10 12 * * mon,tue,wed,fri
displayName: Scheduled most mornings
branches:
include:
- CIBranch
always: true
parameters:
- name: Version
type: string
default: '3'
Run Code Online (Sandbox Code Playgroud) azure-pipelines ×10
azure-devops ×9
azure ×3
.net-core ×1
automation ×1
build ×1
nuget ×1
sqlproj ×1
unit-testing ×1
warnings ×1