标签: azure-pipelines-build-task

Azure DevOps 为内联 bash 脚本中的操作创建变量

在 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 为内联 <code>bash</code> 命令添加参数

该参数存在的事实意味着 Azure DevOps 阻止了我的 bash 文件正确执行并替换了最关键的部分。

我如何解决这个问题?

azure-devops azure-pipelines-build-task azure-pipelines azure-task-groups

4
推荐指数
1
解决办法
5180
查看次数

Azure DevOps 管道日志中显示的“作业前”和“作业后”任务是什么?

我的管道任务如下:(关键是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 azure-pipelines-build-task azure-pipelines

4
推荐指数
1
解决办法
4762
查看次数

Azure DevOps 扩展中的节点密码警告 - 发布任务

我正在开发一个开发 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

4
推荐指数
1
解决办法
961
查看次数

有没有办法获取任务中使用的 SubscriptionID:“Azure 资源组部署”

我正在 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没有办法告诉你。

azure azure-devops azure-pipelines-build-task

4
推荐指数
1
解决办法
1万
查看次数

如何为 VSBuild 任务传递 azure-pipelines.yml 中的 OutDir 值?

这就是任务步骤的样子。我无法将输出文件放入 $(Build.ArtifactStagingDirectory) 目录中。

- task: VSBuild@1
  inputs:
    solution: '$(solution)'
    platform: '$(buildPlatform)'
    configuration: '$(buildConfiguration)'
    msbuildArguments: '/p:OutDir="$(Build.ArtifactStagingDirectory)"'
Run Code Online (Sandbox Code Playgroud)

我想知道 msbuildArguments 参数的格式是否正确。

azure-pipelines-build-task

4
推荐指数
1
解决办法
1259
查看次数

在VSTS托管代理上使用PowerShellGet

我在构建过程中使用的是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

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

VSTS. Reference concatenated variables

I was wondering if it possible to reference concatenated variable name1 and name2 as part of build process? Suppose I'd like to create a resource group called winning-development. Where name1=winning-, and name2=development. 在此处输入图片说明

在此处输入图片说明

azure-devops azure-pipelines-build-task azure-pipelines

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

VSTS构建任务输入类型

我用Google搜索了几天来获取VSTS Task插件支持的输入类型列表,但没有得到任何合适的信息.

这可以在任务插件中创建Grid

azure-pipelines-build-task azure-pipelines azure-pipelines-release-pipeline

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

在Release Gate或ServerGate任务上解析Json成功条件

我正在尝试拼凑一个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

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

构建管道中的变量替换

网上有大量关于如何在像这样的发布管道中替换 JSON 配置文件的资源。我配置了这个。有用。但是,我们也有多个可以访问数据库的集成测试。这些测试在构建期间运行。我还没有看到任何选项来替换构建管道中的配置值。它存在吗?或者我真的必须使用这个自定义任务(见下面的截图)?

更新配置

azure azure-devops azure-pipelines-build-task azure-pipelines

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