标签: azure-pipelines

使用Sonar MSBuild Runner和/ p:IsPackaging = True

我有一个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

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

VSTS按存储库文件夹过滤?

我正在使用Visual Studio Team Services构建我的项目,该项目存储在GitHub(此处)中.主分支包含构成解决方案的多个项目.其中包括WebAPI项目和Cordova项目.我需要在VSTS中使用两个单独的构建定义来构建它们.

以前我已经设置了我的构建定义,并使用分支过滤器来过滤推送到repo的内容.例如:

master/src/API

这有效,但现在已经不复存在了.好像底层代码已经改变了.'master'的过滤器仍然可以工作,我理解这个功能可能是如何专门过滤分支,也可能不是分支内的文件夹?

这不是一个大问题,但是此时我的所有构建都会在每次签入时触发,即使在此源代码中没有任何变化.所以我不知道这个问题有什么好的解决方案:

  1. 将每个项目放在它自己的分支中.似乎是一种解决方法
  2. 一些其他过滤选项或可能是另一种语法或东西?
  3. 保持原样,不要担心额外的构建(但痒,你知道......)

有人在运行类似的设置吗?

continuous-integration github azure-devops azure-pipelines

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

如何从VSTS中的发布工件中排除node_modules文件夹

我目前有一个构建定义来构建我的项目并发布我的文件以供发布。我的项目依靠NPM来使用Gulp.js进行一些自动化。一旦我的任务完成,我就不需要它了。

当我publish artifacts迈出第一步时,node_modules即使我的存储库中没有这些文件,它也会发布目录中的所有文件。我想知道是否有办法将它们从内容部分中排除,或者其他人是否有更好的主意?

这是我的发布工件设置: 在此处输入图片说明

在目录部分,我还尝试了:

**\*
!**\node_modules\*
Run Code Online (Sandbox Code Playgroud)

我对“构建和发布”流程还很陌生,并且不确定是否需要其他信息来帮助调试此问题。因此,请发表评论,我可以根据需要提供信息。谢谢!

npm azure-devops azure-pipelines

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

Visual Studio Build Agent脚本安装

我正在尝试自动化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可以完美地“重定向”控制台输入吗?

powershell windows-scripting azure-pipelines

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

在Azure DevOps中完成发布后,如何创建请求请求?

我正在从事的项目有2个长期存在的功能分支以及master分支。

为了完全自动化部署,每当部署从Azure DevOps版本中退出时,我想创建一个从master到这两个功能分支的提取请求。

Azure DevOps中的哪种工具将允许我将发布请求创建为发布任务?

git pull-request azure-devops azure-pipelines azure-pipelines-release-pipeline

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

EXEC:EXEC(0,0):错误:找不到:python2

我正在尝试将我的本地分支合并到服务器VSTS上的Target分支,但始终失败,并显示以下错误消息:-

EXEC:EXEC(0,0):错误:找不到:python2

我的本地发布效果很好,但仅在将任何源合并到VSTS上的目标分支时才出现问题。

在此处输入图片说明

tfs azure-devops azure-pipelines

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

Azure DevOps构建管道-无法通过脚本访问$(Build.BuildNumber)

在我的构建管道中,我正在执行以下操作:

  1. 从Git还原
  2. Powershell脚本-检索内部版本号,然后将其写入json文件。
  3. 建立解决方案
  4. 存档文件
  5. 发布工件。

在步骤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脚本中访问它。

有什么想法吗?

powershell azure-devops azure-pipelines

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

How to edit/update default Get Sources step in build task TFS?

我们遇到了一个问题,即构建过程中“获取源代码”步骤花费大量时间来第一次在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)

git msbuild tfs azure-devops azure-pipelines

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

如何限制Azure DevOps存储库中的开发人员对build.yml文件的访问

在Azure DevOps中,我们使用经典方式创建了构建和发布管道,现在我们计划将其转换为yaml文件。

但是在yaml方法中,似乎只能将代码放在存储库的根目录下,在该目录下,我们希望将构建yaml文件保存在单独的存储库中,开发人员将无法访问该文件。

如何实现呢?

azure-devops azure-pipelines

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

Azure DevOps中的构建管道和发布管道之间有什么区别?

我已经Azure DevOps通过使用.yaml文件建立了几个多阶段的构建管道。我已经读过有关可用的“发布管道”的信息,我想知道这些管道有什么好处?

他们似乎在做同样的事情,甚至不提供YAML的支持。那么,这里的主要区别是什么?通过使用发布管道而不是通常的构建管道可以做什么?

azure devops azure-devops azure-pipelines

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