标签: azure-pipelines

如何使用 Yaml 在 devops 管道中添加绑定

如何使用 yaml 在“IIS Web 应用程序管理”任务中添加绑定?我尝试像经典管道一样放置绑定,但不起作用

在此处输入图片说明

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

2
推荐指数
2
解决办法
1142
查看次数

在 Azure 数据工厂管道仍在运行时停止运行

我有一个Azure Data Factory Pipeline. 我的触发器每 5 分钟设置一次。有时我的流水线需要超过 5 分钟才能完成它的工作。在这种情况下,触发器再次运行并创建我的管道的另一个实例,并且同一管道的两个实例在我的 ETL 中产生问题。我如何确定我的管道一次只运行一个实例?

在此处输入图片说明

如您所见,我的管道有多个实例正在运行

在此处输入图片说明

triggers azure-data-factory azure-pipelines

2
推荐指数
2
解决办法
3907
查看次数

如何在 azure devops 管道中为节点 js 构建作业设置环境变量

我正在将一些机密从 Azure Key Vault 导入到变量组再到 CI/CD 管道。

我能够使用 Azure Devops UI 从 KeyVault 映射 VariableGroup 中所需的机密。

在我的管道 YAML 中,我能够读取和打印那些作为 AzureKeyVault 机密的 VariableGroup 变量。

    trigger:
      - dev

    # define the VM image 
    pool:
      vmImage: "Ubuntu 16.04"

    # define variables to use during the build
    variables:
    - group: SecretVarGroup # it has keyvault variable 'KV_API_KEY'
    - group: PublicVarGroup # it has a variable 'API_CLIENTID'

    # define the step to export key to env varaiable
    steps:

      - script: echo $MYSECRETAPIKEY
        env:
          MYSECRETAPIKEY: $(KV_API_KEY) …
Run Code Online (Sandbox Code Playgroud)

azure node.js docker azure-devops azure-pipelines

2
推荐指数
1
解决办法
4652
查看次数

如何更改 Azure Devops YAML 管道的默认分支

我在一个分支上创建了一个 YAML 管道并从该分支对其进行了测试。我随后将其合并到 master 并删除了该分支。但是原始分支一直作为管道的默认分支出现。如何将默认值更改为“master”?

YAML 中没有任何内容来定义默认分支。这似乎是 Azure Pipelines 中的一些配置项。

在此处输入图片说明

azure-pipelines azure-pipelines-yaml

2
推荐指数
1
解决办法
652
查看次数

如何在 Azure DevOps 管道池中要求多台代理机器?

我正在寻找是否可以在代理池需求中指定代理列表?在 UI azure 管道中只有两个选项等于和存在。所以,我尝试添加两个需求,但管道只需要第一个需求

流水线用户界面

yaml中同样如下,

pool:
  name: AWS Pool
  demands:
  - Agent.Name -equals simLin02
  - Agent.Name -equals ubuAgent01
Run Code Online (Sandbox Code Playgroud)

我想知道是否有任何逻辑方法可以指定 yaml 中的代理机器列表,如下所示或任何其他替代方法,我可以在其中传递代理名称列表(特定代理名称,因为并非池中的所有代理都具有所需的功能)供管道选择。

pool:
  name: AWS Pool
  demands:
  - Agent.Name -in (simLin02, ubuAgent01)
Run Code Online (Sandbox Code Playgroud)

azure azure-devops azure-pipelines azure-pipelines-yaml

2
推荐指数
1
解决办法
2475
查看次数

如何将环境变量添加到 Azure Devops 管道中

我正在为 Node 应用程序设置 Azure 管道,使用 Jest 来测试 API 和集成。源代码位于 Azure DevOps 中,代码部署在 Azure 门户中。当我运行测试时,它在管道中失败,因为 .env 从未在远程存储库中检查过。通过配置,环境变量在运行时位于 Azure 门户中,因此管道无法真正访问它。

为了让我的测试运行虚拟机,有哪些方法可以访问环境变量或为环境变量创建新位置?

我当前的解决方案(我不知道它是否正确)是创建一个变量组并重新定义我的所有环境变量,以便管道可以读取此处描述的变量:https : //damienaicheh.github.io/azure/devops /2019/09/04/how-to-use-variables-inside-your-azure-devops-builds-en.html

我的问题是:

  1. 这样对吗?此处存储的任何变量都与构建无关,它们也不是运行命令的输入,而是源代码中需要我的所有环境变量,以便我可以在虚拟机中进行测试(例如:base_url、apiKeys 等)。
  2. 如果这是正确的,我怎样才能避免重写和重新分配管道中的所有值?我可以获取整个变量组并且源代码可以解释吗?我想避免这样
- env
  - API_KEY: $(apiKey)
  - MAPS_KEY: $(mapsKey)  
  - CLIENT_KEY: $(clientKey)  
  - CLIENT_SECRET: $(clientSecret)
  - 
  -
  - and so on... 


// looking for something like this
   -env: myVariableGroup
Run Code Online (Sandbox Code Playgroud)
  1. 任何导致帖子,文章的更好解决方案?我正在考虑使用密钥保管库,但我认为它与我必须逐一导入基本相同。

azure node.js azure-web-app-service azure-devops azure-pipelines

2
推荐指数
1
解决办法
4176
查看次数

Azure DevOps 在不工作的情况下使用输出变量暂存依赖项

我有一个 Azure DevOps 管道,其中一个阶段依赖于另外两个阶段。如果以下两项都为真,则此阶段应有条件地运行 -

  • 阶段 1 (Deploy_BVT_UKS_Internal) 在其中一项作业中设置具有特定值的输出变量。
  • 第 2 阶段 (Test_BVT) 失败或被跳过。

这是我正在使用的条件。但是,它不起作用,并且当我期望它运行时会跳过该阶段。检查输出变量值的语法取自文档

condition: >-
  and(
    in(dependencies.Test_BVT.result, 'Skipped', 'Failed'),
    eq(dependencies.Deploy_BVT_UKS_Internal.outputs['Swap_Slots.Output_Slot_Swap_Success_Variable.slotSwapped'], 'true')
  )
Run Code Online (Sandbox Code Playgroud)

为了确认,我按如下方式格式化输出变量检查 -

dependencies.<stageName>.outputs['<jobName>.<taskName>.<variableName>']
Run Code Online (Sandbox Code Playgroud)

如果我只是in(dependencies.Test_BVT.result, 'Skipped', 'Failed')用作我的条件,那么如果Test_BVT跳过或失败阶段,则阶段会运行。所以这表明输出变量检查是问题所在,尽管我不能因为日志似乎不再显示如何评估条件。

令人困惑的是,相同的文档显示了以两种不同方式格式化的阶段依赖关系,因此我添加了一个任务来使用两种格式写入输出变量的值。使用的格式stageDependencies产生预期结果,证明输出变量按预期设置。但是,使用的格式dependencies不起作用。

- job: test
  variables:
    one: $[dependencies.Deploy_BVT_UKS_Internal.outputs['Swap_Slots.Output_Slot_Swap_Success_Variable.slotSwapped']]
    two: $[stageDependencies.Deploy_BVT_UKS_Internal.Swap_Slots.outputs['Output_Slot_Swap_Success_Variable.slotSwapped']]
  steps:
  - script: |
      echo $(one)
      echo $(two)
    displayName: Output SlotSwapped Value
Run Code Online (Sandbox Code Playgroud)

我确实stageDependencies在我的情况下尝试过这种格式,以防万一,但这也失败了。

我在这里遗漏了什么,或者这只是没有按照记录工作?

yaml azure-devops azure-pipelines

2
推荐指数
1
解决办法
1237
查看次数

如何使用 Azure DevOps 管道仅获取更改的文件

我在源代码中有这种方式的文件夹结构。f1 f2 f3 f4

我在我的管道中添加了 gitcopy diff 任务,它列出并复制修改到目标文件夹的文件。现在,我想要一个条件循环作为 powershell 脚本来只压缩那些修改过具有特定名称的文件的文件夹,例如,如果 f1 中的文件被修改......我想要执行特定的步骤等等......我怎么能做一个循环?编辑:我以这种方式编写了我的管道。但是它在发布步骤中失败并列出了错误。

yaml: 触发器:

none

pool:
  vmImage: 'windows-latest'

variables:
  FR1PHPPRDAPP1VFlag: false
  FR1PHPPRDAPP4VFlag: false
  FR1PHPPRDAPP5VFlag: false
  FR1PHPPRDSRE1VFlag: false
  FR1PHPPRDAPP7VFlag: false
  stages:
  -stage: Zipping modified folders
steps:

- powershell: |

      ## get the changed files
      $files=$(git diff HEAD HEAD~ --name-only)
      $temp=$files -split ' '
      $count=$temp.Length
      echo "Total changed $count files"
      For ($i=0; $i -lt $temp.Length; $i++)
        {
          
          $name=$temp[$i]
          echo "this is $name file"
          if ($name -like 'FR1PHPPRDAPP1V/*') 
          {
            cd $(Build.ArtifactStagingDirectory)
            mkdir Output …
Run Code Online (Sandbox Code Playgroud)

pipeline azure-devops azure-pipelines

2
推荐指数
2
解决办法
4591
查看次数

DotNetCoreCLI 还原与 NuGetCommand 还原

我试图了解 Azure 构建管道中两个 nuget restore 命令之间的区别:

- task: NuGetCommand@2
  inputs:
    restoreSolution: '$(solution)'
Run Code Online (Sandbox Code Playgroud)

- task: DotNetCoreCLI@2
  inputs:
    command: 'restore'
    projects: '$(solution)'
    feedsToUse: 'select'
Run Code Online (Sandbox Code Playgroud)

我试图理解,但在微软页面上,我所看到的是可以同时使用两者 - 我真的找不到任何说明差异的内容。(我也不是很明白这个feedsToUse: 'select'说法)

而且,作为第二个问题,后者和

- task: DotNetCoreCLI@2
  inputs:
    command: restore
    projects: '**/*.csproj'
Run Code Online (Sandbox Code Playgroud)

鉴于该解决方案包含所有 csproj(并且仅包含 csproj)?

azure azure-pipelines-build-task azure-pipelines azure-pipelines-yaml

2
推荐指数
1
解决办法
1084
查看次数

Azure Devops Pipeline 返回:“无法将 Web 包部署到应用服务。内部服务器错误(代码:500)'

我正在尝试使用 Azure DevOps 管道来构建 .NET 5(核心)Web 应用程序并将其部署到我的 Azure 应用程序服务。我在文档中找不到任何完整的例子来实现这一点,所以我正在关注这个:

https://github.com/shahedc/NetLearnerApp/blob/main/azure-pipelines.yml.txt

但是,Azure 部署任务不断返回这个模糊的错误: 在此处输入图片说明

在我的 Azure 门户中,我只收到此错误: 在此处输入图片说明

我假设问题出在我的管道中,因为当我直接从 Azure 门户中的部署中心部署时,部署工作正常。以下是我的管道的 3 个相关任务的详细信息:

在此处输入图片说明 在此处输入图片说明 在此处输入图片说明

azure azure-web-app-service azure-devops azure-pipelines

2
推荐指数
2
解决办法
1070
查看次数