如何在 Azure Devops 中将经典构建作业转换为 yaml 构建

2024-01-09

我们在 azure Devops 中有一个工作经典构建作业,具有自托管代理池。但是,当我们尝试将此构建作业转换为 yaml 方法时,在执行时没有分配代理并挂起。如果我正在做某事,您能在这里纠正我吗?

Error

“所有符合条件的代理均已禁用或离线”

下面是从经典构建代理作业转换后的 yaml 文件

pool:
  name: MYpool
  demands: maven

#Your build pipeline references an undefined variable named ‘Parameters.mavenPOMFile’. Create or edit the build pipeline for this YAML file, define the variable on the Variables tab. See https://go.microsoft.com/fwlink/?linkid=865972

steps:
- task: Maven@3
  displayName: 'Maven pom.xml'
  inputs:
    mavenPomFile: '$(Parameters.mavenPOMFile)'

- task: CopyFiles@2
  displayName: 'Copy Files to: $(build.artifactstagingdirectory)'
  inputs:
    SourceFolder: '$(system.defaultworkingdirectory)'
    Contents: '**/*.war'
    TargetFolder: '$(build.artifactstagingdirectory)'
  condition: succeededOrFailed()

- task: PublishBuildArtifacts@1
  displayName: 'Publish Artifact: Root'
  inputs:
    PathtoPublish: '$(build.artifactstagingdirectory)'
    ArtifactName: Root
  condition: succeededOrFailed()

- task: CopyFiles@2
  displayName: 'Copy wars to build directory'
  inputs:
    SourceFolder: '$(build.artifactstagingdirectory)/target'
    TargetFolder: '/home/myadmin/builds/$(build.buildnumber)'

- task: CopyFiles@2
  displayName: 'copying docker file to Build Directory'
  inputs:
    SourceFolder: Admin
    TargetFolder: '/home/myadmin/builds/$(build.buildnumber)'

- bash: |
   # Write your commands here
   mv /home/myadmin/builds/$(build.buildnumber)/mypack0.0.1.war /home/myadmin/builds/$(build.buildnumber)/ROOT.war

  displayName: 'Name war file Root.war'

- task: Docker@2
  displayName: 'Build the docker image'
  inputs:
    repository: 'mycontainerregistry.azurecr.io/myservice'
    command: build
    Dockerfile: '/home/myadmin/builds/$(build.buildnumber)/Dockerfile'
    tags: '$(Build.BuildNumber)-DEV'

- bash: |
   # Write your commands here

   docker login mycontainerregistry.azurecr.io
   docker push mycontainerregistry.azurecr.io/myservice:$(Build.BuildNumber)-DEV

  displayName: 'Push Docker Image'


- task: CopyFiles@2
  displayName: 'Copy Deployment file'
  inputs:
    SourceFolder: /home/myadmin/kubernetes
    TargetFolder: '/home/myadmin/builds/$(build.buildnumber)'

- task: qetza.replacetokens.replacetokens-task.replacetokens@3
  displayName: 'Replace image in deployment file'
  inputs:
    rootDirectory: '/home/myadmin/builds/$(build.buildnumber)'
    targetFiles: '**/*.yml'


在我之前的回答中,我说过当我等待近20-30分钟时,代理界面会提示以下消息。

事实上,这是一个过程自动将代理升级到最新版本.

是的,当您将 YAML 与私有代理一起使用时,代理版本必须是最新的。不管你加不加要求。

对于我们的系统来说,代理版 is a implicit当您在 YAML 中应用它时,要求您的代理必须满足最新的代理。

如果不满足,则会被阻止,一段时间后系统将强制自动执行代理升级过程。

因此,要成功执行 YAML 中的私有代理,请手动将代理升级到最新版本.


因为我和我的同事谈论的内容都是微软的私人信息ticket https://developercommunity.visualstudio.com/content/problem/811315/facing-all-eligible-agents-are-disabled-or-offline.html,抱歉您无法在此摘要中看到。所以,我把它的截图给大家分享一下,大家可以参考一下:https://i.stack.imgur.com/P8Qld.jpg https://i.stack.imgur.com/P8Qld.jpg

我们仍在研究为什么系统会提示如此令人困惑的消息,例如:All eligible agents are disabled or offline。并且,我正在尝试做一些贡献以使此消息更加清晰,例如:no agents meet demands: agent version xxx.

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

如何在 Azure Devops 中将经典构建作业转换为 yaml 构建 的相关文章

随机推荐