在 Azure DevOps 中创建这样的内联 bash 命令时:
checksum="$(cksum file.txt)"
Run Code Online (Sandbox Code Playgroud)
我最终会看到它cksum file.txt是一个必需的参数。无论出于何种原因,这种行为并不一致,因此有时我已经设置了可以与内联 Bash 脚本一起正常工作的构建管道,但不可避免地,我会遇到这个问题并且无法修复它。
我什至尝试将cksum file.txt参数设置为cksum file.txt,但用编码字符串替换空格:%20。它变成cksum%20file.txtwhich 在 bash 中不是有效命令。
这是完整的脚本:
yarnCacheFilename="$(cksum yarn.lock).yarnCache.docker.tgz"
wget "https://example.azureedge.net/yarn-cache/$yarnCacheFilename"
if [ -f "$yarnCacheFilename" ]; then
mkdir node_modules
tar -xzvf "$yarnCacheFilename"
else
yarn install --production
fi
Run Code Online (Sandbox Code Playgroud)
足够简单。这是我可以在任何bash终端中运行的代码。遗憾的是,Azure DevOps 正在向任务组添加一个参数:
该参数存在的事实意味着 Azure DevOps 阻止了我的 bash 文件正确执行并替换了最关键的部分。
我如何解决这个问题?
azure-devops azure-pipelines-build-task azure-pipelines azure-task-groups
我的管道任务如下:(关键是Signing and aligning APK file(s)一个)。
当我查看构建日志时,除了Signing and aligning APK file(s)任务日志之外,我还会看到Pre-job: Signing and aligning APK file(s)一个和Post-job: ...一个(与 for 相同Checkout)。
但是,我不太明白这些任务是什么以及我如何在日志中看到它们?我找不到任何与此相关的文档。 并且,相应地,考虑到存在“Pre-job”任务,是否有任何方法可以在管道构建开始之前定义我自己的任务?
我正在开发一个开发 Azure DevOps 发布任务扩展的项目。最近,当发布任务运行时,我在日志中多次打印此警告消息 - “警告:将 Cipheriv 用于 aes-256-ctr 的计数器模式”。
我没有更早得到它。当我开始收到此错误时,我只更改了一些 console.log(..),甚至没有更改任何可能触发此错误的代码。(可能是一些 npm 依赖更新!)
关于为什么我会收到此错误以及如何修复它的任何想法!如果没有,如何禁用它?
PS - 我知道有人问过这个问题,可能会被归类为重复。但是我问的是在 Azure DevOps 发布任务的上下文中,其他是独立的 node.js 项目。而且,这些修复对我不起作用。
node.js azure-devops azure-pipelines-build-task azure-pipelines azure-pipelines-release-pipeline
我正在 Azure Devops 中使用Azure 资源组部署任务。一些Override 模板参数包括 SubscriptionID。
-virtualNetworkId /subscriptions/53614803-d327-4397-bf55-8dedcc24be0d/resourceGroups/$(resourceGroup)/providers/Microsoft.Network/virtualNetworks/vnet
Run Code Online (Sandbox Code Playgroud)
是否可以使用Azure 订阅连接中使用的 SubsciptionID ?
原因:在构建管道中需要知道 subscriptionId。这也解决了uniqueString模板问题,我们需要知道uniqueString,但是powershell没有办法告诉你。
我的部署正在构建为在不同订阅的任何资源组中运行。我正在使用在门户中创建一台虚拟机时生成的 ARM 模板来部署多台虚拟机。其中一个参数嵌入了订阅 ID,如问题所示。由于变量在门户构建的模板内计算的方式,[subscription.SubscriptionId] 不起作用:
"variables": {
"vnetId": "[parameters('virtualNetworkId')]",
"subnetRef": "[concat(variables('vnetId'), '/subnets/', parameters('subnetName'))]",
Run Code Online (Sandbox Code Playgroud)
它在运行时最终为:
/subscriptions/$(subscription().subscriptionid)/resourceGroups/Dev1/providers/Microsoft.Network/virtualNetworks/vnet/subnets/default
Run Code Online (Sandbox Code Playgroud)
我不想编辑模板,因为我需要对未来的部署进行一些调整,并且可能会使用门户来制作新模板。构建管道中需要知道subscriptionId 。这也解决了uniqueString模板问题,我们需要知道 uniqueString ,但powershell没有办法告诉你。
这就是任务步骤的样子。我无法将输出文件放入 $(Build.ArtifactStagingDirectory) 目录中。
- task: VSBuild@1
inputs:
solution: '$(solution)'
platform: '$(buildPlatform)'
configuration: '$(buildConfiguration)'
msbuildArguments: '/p:OutDir="$(Build.ArtifactStagingDirectory)"'
Run Code Online (Sandbox Code Playgroud)
我想知道 msbuildArguments 参数的格式是否正确。
我在构建过程中使用的是Visual Studio Team Services(VSTS)托管的构建代理。我的构建主要依赖于“ PowerShell”步骤,该步骤调用了我在git中拥有的脚本。在此脚本中,我想使用PowerShellGet管理PowerShell模块。例如,我希望能够仅通过运行以下命令来安装pscx
Install-Module -Name pscx
Run Code Online (Sandbox Code Playgroud)
不幸的是,托管代理使用PowerShell 4,并且没有PowerShellGet安装模块。结果,该Install-Module功能不可用。
有人建议在VSTS托管代理上使用PowerShellGet模块吗?请注意,由于我在这台计算机上没有管理员权限,因此无法安装为PowerShell 4安装PowerShellGet的msi。
powershellget azure-devops azure-pipelines-build-task azure-pipelines
我用Google搜索了几天来获取VSTS Task插件支持的输入类型列表,但没有得到任何合适的信息.
这可以在任务插件中创建Grid
azure-pipelines-build-task azure-pipelines azure-pipelines-release-pipeline
我正在尝试拼凑一个Release Gate/ServerGate构建任务,调用Web服务,抓住Json,然后决定是否继续.
服务返回的Json看起来像这样:
{
"publisher": {
"publisherId": "c68591c6-8fbd-413b-b7fb-b921737f4f9f",
"publisherName": "jessehouwing",
"displayName": "Jesse Houwing",
"flags": "verified"
},
"extensionId": "252ad2b4-a2c5-43fc-bba5-17e631896091",
"extensionName": "vsts-snyk",
"displayName": "Snyk Task",
"flags": "validated, public",
"lastUpdated": "2018-03-16T18:58:36.327Z",
"publishedDate": "2016-11-16T21:35:28.387Z",
"releaseDate": "2016-11-16T21:35:28.387Z",
"shortDescription": "Snyk continuously finds and fixes vulnerabilities in your dependencies.",
"versions": [
{
"version": "1.1.12",
"flags": "validated",
"lastUpdated": "2018-03-16T18:58:53.133Z"
},
{
"version": "1.1.11",
"flags": "validated",
"lastUpdated": "2018-02-18T13:53:47.83Z"
}
],
"deploymentType": 0
}
Run Code Online (Sandbox Code Playgroud)
我正在基于task.json中的HttpHandler执行处理程序调用该服务:
"execution": {
"HttpRequest": {
"Execute": {
"EndpointId": "$(connectedServiceName)",
"EndpointUrl": "$(endpoint.url)_apis/gallery/publishers/$(publisherId)/extensions/$(extensionId)$(extensionTag)?flags=1",
"Method": "GET",
"Body": "",
"Headers": …Run Code Online (Sandbox Code Playgroud) continuous-delivery azure-devops azure-pipelines-build-task azure-pipelines-release-pipeline
网上有大量关于如何在像这样的发布管道中替换 JSON 配置文件的资源。我配置了这个。有用。但是,我们也有多个可以访问数据库的集成测试。这些测试在构建期间运行。我还没有看到任何选项来替换构建管道中的配置值。它存在吗?或者我真的必须使用这个自定义任务(见下面的截图)?
azure azure-devops azure-pipelines-build-task azure-pipelines
azure-pipelines-build-task ×10
azure-devops ×8
azure-pipelines-release-pipeline ×3
azure ×2
node.js ×1