标签: azure-pipelines

VSTS:如何重新排队损坏的构建和切换代理队列

背景:

我们正在使用 Gitflow 运行 Visual Studio Team Services (VSTS),并一直尝试在笔记本电脑上使用带有本地构建代理的私有管道。然而,我们的本地代理遇到了麻烦,对于特定的拉取请求,针对该本地代理的构建失败了。我已编辑构建定义以使用 Hosted2017 代理,并希望重新排队拉取请求。我可以手动将 sha1 哈希的构建排队,以供 PR 提交来测试代理。但是,我想完成拉取请求,并且我将使构建成功,但似乎我无法使 PR 的构建使用更新的构建定义。

问题:

那么我如何获得 Pull Request 来让这个构建工作呢?我没有看到切换拉取请求的构建定义的选项?我是否只需要放弃并重做 PR,或者有没有办法可以修复此 PR,而无需要求创建它的开发人员跳过障碍,以便我可以修复构建过程?

谢谢!

azure-devops azure-pipelines

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

如何从不同的变量组 Azure Pipeline 访问相同的变量?

我正在使用 azure-pipelines.yaml 来构建多个阶段,每个阶段都有相同的变量,即 var_key 但每个阶段的值不同,为此我有不同的 Azure 库组

  1. 开发组
  2. qa_group

azure-pipelines.yaml

name: $(Date:yyyyMMdd)$(Rev:.r)

pr:
  branches:
    include:
    - develop
    - master

trigger:
  branches:
    include:
    - develop
    - master

variables:
  group: group1, group2, group3
  BuildNumber: $(Build.BuildNumber)

stages:
  - stage: debug
    jobs:
      - job: DebugConditions
        pool: 
          vmImage: 'ubuntu-latest'
        steps:
          - bash: echo $(group1.var_key)

   - stage: dev
    jobs:
      - job: DevConditions
        pool: 
          vmImage: 'ubuntu-latest'
        steps:
          - bash: echo $(group2.var_key)
Run Code Online (Sandbox Code Playgroud)

这给了我一个错误,是否有正确的方法来做到这一点。

yaml azure azure-devops azure-pipelines azure-pipelines-release-pipeline

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

Azure 管道:未找到错误 MSB4019 WebApplication.targets

我创建了一个 episerver 合金项目,在设置了一些 nuget 包后,它在 Visual Studio 中构建和运行良好,我可以部署到 azure 并从 VS 以 azure 运行,没有问题。

我现在正试图让构建在管道中工作。

按照说明,我添加了一个“nuget restore”任务,并将其指向 NuGet.config。这有效。

然后它进入构建阶段,并给出:

D:\a\1\s\DxcAlloy.csproj(335,3): 错误 MSB4019: 导入的项目 "C:\Program Files\dotnet\sdk\3.1.202\Microsoft\VisualStudio\v16.0\WebApplications\Microsoft .WebApplication.targets”未找到。确认导入声明“C:\Program Files\dotnet\sdk\3.1.202\Microsoft\VisualStudio\v16.0\WebApplications\Microsoft.WebApplication.targets”中的表达式正确,并且该文件存在于磁盘上。

我不知道如何调试这个。有些帖子说,如果您没有安装 Visual Studio,可能会发生错误,但我无法在 azure 管道上安装 Visual Studio...

我删除了现有的“.net 恢复”任务,因为它失败了,我猜测我只需要我的 nuget 恢复 - 这是一个猜测。

管道“代理规范”是vs2017-win16

该项目是在 VS 2019 中创建的。

无奈之下,我添加了一个“Use .NET core”任务,并将版本设置为构建抱怨丢失的版本,即3.1.202。

这没有帮助。

有任何想法吗?

azure azure-pipelines

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

如何在 Azure DevOps 中编译 .NET(控制台应用程序)并生成一个 exe

我使用 .NET 桌面模板和“create .msi”扩展名创建了一个管道,但它显示了一个警告:

 ##[warning]No .MSI files were found, please check your build-configuration. If this is expected, you might consider to use the default Visual Studio Build task instead of this custom Installer task.
2018-11-28T22:58:54.1434410Z ##[section]Finishing: Create .msi file(s) from VS Installer project(s).
Run Code Online (Sandbox Code Playgroud)

任何人都知道如何使用 Azure Pipeline 创建 exe 文件并将其部署在虚拟机上。

azure azure-devops azure-pipelines

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

Azure 管道根据条件设置任务的显示名称

在构建管道中,我有一个使用 powershell 脚本的工作,根据这样的变量设置应用程序名称:

$applicationName = If ('$(configuration)' -eq 'Release') { 'Appname' } Else { 'Appname-Test' }
Write-Host "##vso[task.setvariable variable=applicationName]$applicationName"
Run Code Online (Sandbox Code Playgroud)

我尝试将PublishBuildArtifacts@1变量的显示名称设置为这样的变量:

  - task: PublishBuildArtifacts@1        
    displayName: $[variables.applicationName] #  runtime variable
Run Code Online (Sandbox Code Playgroud)

但这从字面上显示$[variables.applicationName]而不是变量值。如何根据变量更改任务的显示名称?

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

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

在 YAML 部署作业中部署后检查应用程序运行状况端点的最佳方法?

在你喊“门!”之前 请阅读。

我有本地 IIS 服务器群,我为每个(开发、测试、生产)创建了一个 VM 环境。在我所有的应用程序中,我都有一个 CD YAML,如下所示:

- stage: Deploy_Test
  jobs:
  - deployment: APIDeployTestIISFarm
    displayName: Deploy API to Test IIS
    environment:
      name: Test
      resourceType: VirtualMachine
    strategy:
      runOnce:
        deploy:
          steps:
Run Code Online (Sandbox Code Playgroud)

因为我有 20 个不同的应用程序,它们都针对相同的环境,所以我无法使用 Gates 功能。并非所有应用程序都具有完全相同的/health端点。

我目前正在制作一个 powershell 命令来简单地调用 /health 并且如果“不健康”可能会抛出结果。尽管与只会检查 200 的 HTTP 门相比,这对我来说听起来非常难看,但我敢打赌它也具有容错/弹性。毕竟,IIS 站点在部署后第一次点击时需要一秒钟的时间来启动。

对我尚未见过的其他想法或任务持开放态度。

azure-devops azure-pipelines

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

azure devops:将文件复制到工件文件夹以在发布管道中访问

我正在使用 azure 为 ios 创建一个构建,我想将证书文件复制到为在发布管道中使用而创建的工件文件夹。

我正在使用复制任务,在任务完成后,我无法在所需的工件文件夹中找到复制的文件。复制任务 有复制任务的答案,但不适用于我的场景。

或者有什么方法可以从构建管道的源文件夹访问文件到发布管道?

azure-devops azure-pipelines

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

使用 DevOps 的构建参数构建 docker 镜像并将其推送到 ACR

我正在 Azure DevOps 管道中构建 docker 映像,然后我想将它推送到 Azure 容器注册表。注册表已经创建,我已经配置了 DevOps 来使用它,buildAndPushDocker 任务也可以工作。

但是,由于可以对 Docker 构建进行参数化,因此我想将参数传递给它,而我无法使用buildAndPushDocker 任务来实现。所以我决定分两步做,一个是构建,另一个是推动。这边走:

# Docker
# Build and push an image to Azure Container Registry
# https://docs.microsoft.com/azure/devops/pipelines/languages/docker
trigger: none

resources:
- repo: self

variables:
  # Container registry service connection established during pipeline creation
  dockerRegistryServiceConnection: 'aaaa-aaaa-aaaa-aaaa-aaaaa'
  imageRepository: 'ubuntu-qt'
  containerRegistry: 'myregistry.azurecr.io'
  dockerfilePath: '$(Build.SourcesDirectory)/docker-qt-build/Dockerfile'
  
  # Agent VM image name
  vmImageName: 'ubuntu-latest'

stages:
- stage: BuildPush
  displayName: Build and push
  jobs:  
  - job: Build
    displayName: …
Run Code Online (Sandbox Code Playgroud)

docker azure-devops azure-pipelines azure-container-registry

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

Azure DevOps:如何使用经典编辑器在管道中使用环境?

我是 Azure DevOps 的新手,想在我的 Azure DevOps 管道中使用环境。如果您使用的是 yaml 编辑器,我已经在网上看到有关如何在 yml 文件 (Azure pipeliens.yml) 中配置环境的示例。但是,我使用的是经典编辑器,我不确定如何将环境的使用集成到管道中,或者我应该编辑什么任务。我将不胜感激任何帮助或知识分享,谢谢!

以下是我在经典编辑器中的当前管道:

在此处输入图片说明

这些是我在网上看到的示例,它们能够在管道 yaml 编辑器中使用环境

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

azure-devops azure-pipelines azure-pipelines-tasks

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

Azure YAML-Pipeline 跳过作业,我不知道为什么

即使我设置了 System.Debug=True,除了“作业被跳过”之外,我没有得到其他信息。字面意思就是这四个字。

我在 Azure Devops 上创建了一个 YAML-Release 管道,它基本上运行这些作业:

  • 工作:build_release
  • 工作:部署:deploy_test
  • 工作:部署:deploy_stage

为了测试行为,我首先只运行前两个作业并部署到 TEST。现在我想部署到 STAGE,但似乎只有当我从头开始/创建新版本时,管道才起作用。但是我现在想要做的是将已经存在的版本从 TEST 部署到 STAGE。当我尝试通过重新运行管道来做到这一点时,Azure 只会跳过所有步骤。为什么会这样?如何避免这种情况并重新运行管道?我没有设置任何条件。

编辑附加信息:

管道结构


trigger:
    - release/*

variables:
     ...

resources:
    -   repo: self


pool:
    vmImage: $(vmImageName)

stages:
    -   stage: build_release
        displayName: 'awesome build'
        condition: contains(variables['Build.SourceBranchName'], 'release/')
        jobs:
            -   job: build_release
                steps:
                    ...

    -   stage: deploy_test
        displayName: 'awesome test deploy'
        jobs:
            -   deployment: deploy_test
                environment: 'test'
                strategy:
                    runOnce:
                        deploy:
                            steps:
                               ...

    -   stage: deploy_stage
        displayName: 'awesome stage deploy'
        jobs:
            -   deployment: deploy_stage
                environment: 'stage'
                strategy: …
Run Code Online (Sandbox Code Playgroud)

yaml pipeline azure azure-pipelines azure-yaml-pipelines

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