我们正在 Windows 8.1 中的 IE 上运行编码 UI 测试,并且我们通过 Visual Studio Team Services 进行测试。作为我们构建的一部分,我们运行了一个禁用弹出管理器的 Powershell 脚本。我们用来禁用它的代码是这样的:
Remove-ItemProperty "HKCU:\Software\Microsoft\Internet Explorer\New Windows" -Name "PopupMgr"
New-ItemProperty "HKCU:\Software\Microsoft\Internet Explorer\New Windows" -Name "PopupMgr" -Value 00000000 -PropertyType "DWord"
Run Code Online (Sandbox Code Playgroud)
当我在 Release Manager 中创建和部署构建时,运行它会生成以下错误:
运行命令停止,因为首选项变量“ErrorActionPreference”或公共参数设置为停止:找不到路径“HKCU:\Software\Microsoft\Internet Explorer\New Windows”,因为它不存在。
(强调我的)
我已经登录到 VM 并查看了注册表,并且HKEY_CURRENT_USER\Software\Microsoft\Internet Explorer\New Windows绝对存在。我唯一能想到的是它的值不是 DWORD 而是字符串——PopupMgr键的数据值为“是”而不是 1 或 0。但这与错误消息不匹配——错误说它甚至找不到键的路径,而不是值类型不匹配。另外,代码在插入新密钥之前删除了现有密钥,所以我什至不知道它是如何注意到不匹配的。
更奇怪的是,如果我在 VM 中打开 Powershell 并运行那两行(我复制并粘贴以避免输入错误),它们运行得很好。
这个脚本在 Windows 10 上运行得很好并且已经有一段时间了,所以我不确定这里发生了什么。用户是管理员组的成员,所以我认为这不是权限问题。
任何人都可以对此有所了解吗?
powershell internet-explorer azure-pipelines azure-pipelines-release-pipeline
在 VSTS CI/CD 中,我在 CI 的 Powershell 任务中设置了一些变量的值。在 CD 期间,我想访问该变量的值来做某事,比如说 echo。
这可能吗?如果是这样,如何?
azure-devops azure-pipelines azure-pipelines-release-pipeline
伙计们,我一直在尝试将 Azure Pipelines 设置/集成到我们的 Enterprise Github。我知道目前它只支持 github.com 的。
如果有人确实能够做同样的事情,我需要一些指示。
谢谢大家。
我是 DevOps 的新手,所以如果我错过了一些基本的东西,请放轻松:)
我在 Azure Pipelines 中使用以下内容:Hosted MacOS with an Xcode Build Agent(Xcode 版本 5.142.0)
我刚刚开始尝试为使用多个配置文件的基于 Xcode 的项目设置管道。在我的场景中,我的应用程序中有以下配置文件:
我已经按照说明在这里设置证书和配置文件(尽管我的项目使用自动签名):https : //docs.microsoft.com/en-us/azure/devops/pipelines/apps/mobile/app-signing ?view=vsts&tabs=apple-install-during-build
这些已正确安装到托管构建代理(没有错误),并且构建过程完美无缺,直到签名。
在签名期间,似乎没有一个目标可以找到他们的配置文件(使用“手动”和“自动”分配时)。
以下是日志中运行的内容:
[command]/usr/bin/xcodebuild -workspace /Users/vsts/agent/2.142.1/work/1/s/*MYAPP**.xcworkspace -scheme **MYAPP** archive -sdk iphoneos -configuration Release -archivePath /Users/vsts/agent/2.142.1/work/1/s/**MYAPP** CODE_SIGN_STYLE=Manual PROVISIONING_PROFILE= PROVISIONING_PROFILE_SPECIFIER= | /usr/local/bin/xcpretty --no-color
然后,当涉及到归档时,每个方案都会发生以下情况:
error: "xxx Today Widget" requires a provisioning profile with the Push Notifications and App Groups features. Select a provisioning profile for the "Release" build configuration in the project editor. …
网上有大量关于如何在像这样的发布管道中替换 JSON 配置文件的资源。我配置了这个。有用。但是,我们也有多个可以访问数据库的集成测试。这些测试在构建期间运行。我还没有看到任何选项来替换构建管道中的配置值。它存在吗?或者我真的必须使用这个自定义任务(见下面的截图)?
azure azure-devops azure-pipelines-build-task azure-pipelines
我一直在努力解决 Azure DevOps 中的一个问题,我可以通过构建管道成功构建工件(我使用发布工件任务)。我可以看到工件已成功构建,因为我可以下载它,稍后我可以在发布管道中引用它。
问题是当托管代理启动时,没有工件下载到机器上,我的 $(System.DefaultWorkingDirectory) 总是空的。我不知道为什么在托管代理的初始化过程中实际上没有下载任何工件....
我有一个托管在 Azure 中的应用程序,我使用 Azure DevOps 来管理我的构建和发布管道。作为发布的一部分,我通过向根 url 发出请求来预热应用程序(例如https://myapp.azurewebsites.net)。为了发出此请求,我必须首先确保运行部署的托管构建代理可以访问该 url(否则我将收到 403)。我编写了一个简短的 powershell 脚本来实现这一点,并将其放入 Azure Powershell 任务中。它将构建代理的 IP 添加到应用服务的 IpSecurityConfiguration。到现在为止还挺好。它非常适合只是应用程序的应用程序。它失败的地方是当我尝试在登台环境中使用它时。当我们发布到生产环境时,我们首先将代码推送到暂存槽,然后在我们运行测试并确保一切正常后将其翻转过来。正确处理应用服务的 IpSecurityConfiguration 的 powershell 脚本在暂存槽上不起作用。要访问暂存槽,我们对变量 $(WebApiName) 使用 myappname/slots/staging,通常它只是应用程序服务本身的名称。同样,如果我从本地环境运行脚本,这将非常有效,它只会在管道中失败。代码如下:
# Whitelist Azure Agent IPs
$agentIP = Invoke-RestMethod http://ipinfo.io/json | Select -exp ip
Write-Host "Connecting to Azure"
$APIVersion = ((Get-AzureRmResourceProvider -ProviderNamespace Microsoft.Web).ResourceTypes | Where-Object ResourceTypeName -eq sites).ApiVersions[0]
Write-Host "API Version is $APIVersion. Getting web app config for $(WebApiName) in $(ResourceGroupName)"
$WebApiConfig = (Get-AzureRmResource -ResourceType Microsoft.Web/sites/config -ResourceName $(WebApiName) -ResourceGroupName $(ResourceGroupName) -ApiVersion $APIVersion)
Write-Host "Got …Run Code Online (Sandbox Code Playgroud) powershell azure-web-app-service azure-devops azure-pipelines
我有一个跨越多个部署组的复杂版本,我计划使用 3rd 方vsts-git-release-tag扩展来标记版本。理想情况下,在标记存储库之前,整个发布(所有作业)将首先成功。
因此,我正在努力找出实现这一目标的最佳方法。如果这是一个构建管道而不是部署管道,很明显我可以使用 来dependsOn安排它们,如下所示。
jobs:
- job: Deployment_Group_1
steps:
- script: echo hello from Deployment Group 1
- job: Deployment_Group_2
steps:
- script: echo hello from Deployment Group 2
- job: Tag_Repo
steps:
- script: echo this is where I would tag the Repo
dependsOn:
- Deployment_Group_1
- Deployment_Group_2
Run Code Online (Sandbox Code Playgroud)
但是,本文档中指定的发布管道中似乎没有等效的功能(至少目前是这样)。
笔记
目前仅在构建管道中支持并行运行多个作业。发布管道中尚不支持它。
虽然它没有具体提到该dependsOn功能,但似乎没有办法在发布管道中使用它(如果我错了,请纠正我)。
我意识到我可能会创建一个包含单个作业和任务的单独阶段来创建 Git 标签,但这感觉就像一个黑客。在所有其他发布作业完成后,是否有更好的方法来运行特定的发布作业?
azure azure-devops azure-pipelines azure-pipelines-release-task
我非常需要帮助来创建我的 yml 构建文件,因为我在任何地方都找不到任何好的教程、示例或其他帮助之王。我总是收到类似的错误:看到警告,我的构建工件似乎总是空的。所有步骤都成功,但我无法部署,因为找不到我的文件。愚蠢的。
##[section]Starting: PublishBuildArtifacts
==============================================================================
Task : Publish Build Artifacts
Description : Publish build artifacts to Azure Pipelines/TFS or a file share
Version : 1.142.2
Author : Microsoft Corporation
Help : [More Information](https://go.microsoft.com/fwlink/?LinkID=708390)
==============================================================================
##[warning]Directory '/home/vsts/work/1/a' is empty. Nothing will be added to build artifact 'drop'.
##[section]Finishing: PublishBuildArtifacts
Run Code Online (Sandbox Code Playgroud)
这是我的管道定义
# 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:
- …Run Code Online (Sandbox Code Playgroud) 我想知道是否可以在我的 Azure DevOps 构建管道“发布工件”任务中有条件地设置我的构建工件的名称?我想根据构建管道的输入生成不同的工件。假设,基于输入管道变量,我想生成三个工件之一(“红色”、“蓝色”、“绿色”)。是否可以根据输入变量指定在我的“发布工件”任务中生成的工件,或者仅生成三个构建管道是否更容易/更好?
azure-pipelines ×10
azure-devops ×9
azure ×2
azure-pipelines-release-pipeline ×2
powershell ×2
asp.net-core ×1
azure-pipelines-release-task ×1
enterprise ×1
github ×1
xcode ×1