Я пытаюсь создать конвейер с помощью azure cloud и devops. Но при развертывании из успешной сборки я получаю ошибку, описанную ниже. Как я могу решить эту проблему?

Я прочитал статью, она потрясающая "http://www.alessandromoura.com.br/2020/04/23/azure-devops-publish-and-download-artifacts/"

.

Я применил ваши наборы правил, но получил ошибку, описанную ниже :

Ошибка: Не найден пакет с указанным шаблоном: D:\a\r1\a***.zip
. Проверьте, опубликован ли пакет, упомянутый в задании, в качестве артефакта в сборке или на предыдущем этапе и загружен ли он в текущем задании.

azure-pipelines.yml :


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

trigger:
- main

resources:
- repo: self

variables:
  # Container registry service connection established during pipeline creation
  dockerRegistryServiceConnection: 'xxxxx'
  imageRepository: 'xxxhelloaspnetcore'
  containerRegistry: 'xxxcontainer01.azurecr.io'
  dockerfilePath: '$(Build.SourcesDirectory)/Dockerfile'
  tag: '$(Build.BuildId)'
  
  # Agent VM image name
  vmImageName: 'ubuntu-latest'

stages:
- stage: Build
  displayName: Build and push stage
  jobs:  
  - job: Build
    displayName: Build
    pool:
      vmImage: $(vmImageName)
    steps:
    - task: Docker@2
      displayName: Build and push an image to container registry
      inputs:
        command: buildAndPush
        repository: $(imageRepository)
        dockerfile: $(dockerfilePath)
        containerRegistry: $(dockerRegistryServiceConnection)
        tags: |
          $(tag)
    - download: none
    - task: DownloadPipelineArtifact@2
      displayName: 'Download Build Artifacts'
      inputs:
        patterns: '**/*.zip'
        path: '$(Build.ArtifactStagingDirectory)'

    - task: PowerShell@2
      displayName: 'Degug parameters'
      inputs:
        targetType: Inline
        script: |
            Write-Host "$(Build.ArtifactStagingDirectory)"
            Write-Host "$(System.DefaultWorkingDirectory)"
            Write-Host "$(System.ArtifactsDirectory)"
            Write-Host "$(Pipeline.Workspace)"
            Write-Host "$(System.ArtifactsDirectory)"

Ответы (1)

Ваш конвейер создает и помещает образ в реестр контейнеров, поэтому у вас нет артефактов конвейера. Вот почему DownloadPipelineArtifact выдает ошибку.

DownloadPipelineArtifact имеет смысл, только если перед этим вы использовали PublishPipelineArtifact. В этом документе - Публикация и загрузка артефактов в Azure Pipelines это очень хорошо описано.

Также существует способ загрузки артефактов из другого трубопровода - но для этого необходимо использовать ресурс, но у вас нет определенного ресурса трубопровода в вашем трубопроводе.

Все работает, как и ожидалось. Не могли бы вы объяснить, что именно вы хотите загрузить и что для этого нужно сделать?

2022 WebDevInsider