我有一个Visual Studio Team Services构建定义,其中包含由Sonar Begin Analysis和End Analysis任务包围的Visual Studio Build任务.Visual Studio Build使用/ p:IsPackaging = True属性打包SharePoint提供程序托管的加载项.如果设置了此属性,则会从Sonar Build Runner中收到以下错误:
2015-11-27T13:23:05.9534586Z WARNING: Duplicate project GUID: "31ef7995-fdbc-4307-9024-a3d640fdf987".
Check that the project is only being built for a single platform/configuration and that that
the project guid is unique. The project will not be analyzed by SonarQube.
Run Code Online (Sandbox Code Playgroud)
当然,我可以首先构建没有/ p的解决方案:IsPackaging = True并在此处运行分析,然后在第二步中进行打包,但这似乎浪费了必须两次构建解决方案的资源.
知道我如何打包SharePoint提供程序托管加载项并使用相同的任务与Sonar进行代码分析?
使用的声纳版本是5.1.2.VSTS任务使用的MSBuild.SonarQube.Runner版本是1.0.1.
sonar-runner sharepoint-apps sonarqube sonarqube-msbuild-runner azure-pipelines
我正在使用Visual Studio Team Services构建我的项目,该项目存储在GitHub(此处)中.主分支包含构成解决方案的多个项目.其中包括WebAPI项目和Cordova项目.我需要在VSTS中使用两个单独的构建定义来构建它们.
以前我已经设置了我的构建定义,并使用分支过滤器来过滤推送到repo的内容.例如:
master/src/API
这有效,但现在已经不复存在了.好像底层代码已经改变了.'master'的过滤器仍然可以工作,我理解这个功能可能是如何专门过滤分支,也可能不是分支内的文件夹?
这不是一个大问题,但是此时我的所有构建都会在每次签入时触发,即使在此源代码中没有任何变化.所以我不知道这个问题有什么好的解决方案:
有人在运行类似的设置吗?
我目前有一个构建定义来构建我的项目并发布我的文件以供发布。我的项目依靠NPM来使用Gulp.js进行一些自动化。一旦我的任务完成,我就不需要它了。
当我publish artifacts迈出第一步时,node_modules即使我的存储库中没有这些文件,它也会发布目录中的所有文件。我想知道是否有办法将它们从内容部分中排除,或者其他人是否有更好的主意?
在目录部分,我还尝试了:
**\*
!**\node_modules\*
Run Code Online (Sandbox Code Playgroud)
我对“构建和发布”流程还很陌生,并且不确定是否需要其他信息来帮助调试此问题。因此,请发表评论,我可以根据需要提供信息。谢谢!
我正在尝试自动化VSTS Build Agent安装程序(https://www.visualstudio.com/en-us/docs/build/actions/agents/v2-windows)。
但是,此过程中有一个交互式步骤。这是一个cmd脚本文件,需要用户输入。我尝试使用设置生成一个TXT文件,然后运行脚本以读取该文件中的输入:
.\config < settings.txt
Run Code Online (Sandbox Code Playgroud)
但这没有用。我收到该消息:
Enter server URL > Enter authentication type (press enter for PAT) > Enter perso
nal access token > Cannot read keys when either application does not have a cons
ole or when console input has been redirected. Try Console.Read.
Run Code Online (Sandbox Code Playgroud)
是否可以通过脚本设置构建代理?有什么方法config.cmd可以完美地“重定向”控制台输入吗?
我正在从事的项目有2个长期存在的功能分支以及master分支。
为了完全自动化部署,每当部署从Azure DevOps版本中退出时,我想创建一个从master到这两个功能分支的提取请求。
Azure DevOps中的哪种工具将允许我将发布请求创建为发布任务?
git pull-request azure-devops azure-pipelines azure-pipelines-release-pipeline
我正在尝试将我的本地分支合并到服务器VSTS上的Target分支,但始终失败,并显示以下错误消息:-
EXEC:EXEC(0,0):错误:找不到:python2
我的本地发布效果很好,但仅在将任何源合并到VSTS上的目标分支时才出现问题。
在我的构建管道中,我正在执行以下操作:
在步骤2中,Powershell脚本非常简单:
定义的环境变量:
Name: buildNumber Value: $(Build.BuildNumber)
Name: rootPath Value:$(Build.ArtifactStagingDirectory)
Run Code Online (Sandbox Code Playgroud)
码:
$theFile = Get-ChildItem -Path $rootPath -Recurse -Filter "host.json" | Select-Object -First 1
$propertyName = "BuildNumber"
if($theFile)
{
$json = Get-Content "$theFile" | Out-String | ConvertFrom-Json
if($json.$propertyName)
{
$json.$propertyName = $buildNumber
}else{
Add-Member -InputObject $json -MemberType NoteProperty -Name $propertyName -Value $buildNumber
}
$json | ConvertTo-Json -depth 100 | Out-File "$theFile"
}
else
{
Write-Warning "Found no files."
}
Run Code Online (Sandbox Code Playgroud)
由于某种原因,我的$ buildNumber返回空值。$ rootPath正在工作。我无法在构建步骤之外访问$(Build.BuildNumber)吗?内部版本号格式在“管道的选项”中定义,在标记内部版本时可以很好地工作,但是我无法在Powershell脚本中访问它。
有什么想法吗?
我们遇到了一个问题,即构建过程中“获取源代码”步骤花费大量时间来第一次在Agent上克隆存储库,而第二次花费的时间更少。
因此,有一种方法可以优化“获取源代码”步骤,以便它不应克隆整个历史记录,而应克隆最后的提交历史记录。
下面是示例在“获取源代码”步骤中需要执行的操作:
1. Master Branch
git clone --depth 1 <Repo Url>
2. Feature Branch
cd <Project Name>
git remote set-branches origin %remote_branch_name%
git fetch --depth 1 origin %remote_branch_name%
git checkout %remote_branch_name%
Run Code Online (Sandbox Code Playgroud) 在Azure DevOps中,我们使用经典方式创建了构建和发布管道,现在我们计划将其转换为yaml文件。
但是在yaml方法中,似乎只能将代码放在存储库的根目录下,在该目录下,我们希望将构建yaml文件保存在单独的存储库中,开发人员将无法访问该文件。
如何实现呢?
我已经Azure DevOps通过使用.yaml文件建立了几个多阶段的构建管道。我已经读过有关可用的“发布管道”的信息,我想知道这些管道有什么好处?
他们似乎在做同样的事情,甚至不提供YAML的支持。那么,这里的主要区别是什么?通过使用发布管道而不是通常的构建管道可以做什么?
azure-pipelines ×10
azure-devops ×8
git ×2
powershell ×2
tfs ×2
azure ×1
azure-pipelines-release-pipeline ×1
devops ×1
github ×1
msbuild ×1
npm ×1
pull-request ×1
sonar-runner ×1
sonarqube ×1