Проблема многостадийного конвейерного артефакта YAML в Azure Devops - PullRequest
0 голосов
/ 24 октября 2019

Мой многоступенчатый конвейер Azure Devops YAML выдает ошибку при развертывании ARM. Проблема заключается в загрузке артефакта из сборки. См. Ошибку здесь:

Ошибка

Похоже, что артефакт не загружается в заданиях до их загрузки. Разница в том, что производственное развертывание должно быть одобрено, и поэтому оно находится внутри -deployment, а не в -job.

См. Код здесь:

- stage: Deploy_Prod
  dependsOn: Deploy_Acc
  # Only deploy when build is from master
  condition: and(succeeded(), eq(variables['build.sourceBranch'], 'refs/heads/master'))
  jobs:
  - deployment: 'Deploy_Prod'
    pool:
      vmImage: 'ubuntu-latest'
    # Set envrironment for approval, see https://dev.azure.com/dept/DTNL%20-%20CBRE/_environments/5?view=resources
    environment: cbre_prod  
    strategy:
      runOnce:
        deploy:
          steps:
            # Download build artifact
            - download: current
              artifact: Templates

            # Deploy production infra
            - task: AzureResourceManagerTemplateDeployment@3
              displayName: 'Deploy production infrastructure'
              inputs:
                deploymentScope: 'Resource Group'
                ConnectedServiceName: '***'
                subscriptionName: '***'
                action: 'Create Or Update Resource Group'
                resourceGroupName: '***'
                location: 'West Europe'
                templateLocation: 'Linked artifact'
                csmFile: 'azuredeploy.json'
                csmParametersFile: 'azuredeploy-parameters-prod.json'
                deploymentMode: 'incremental'

Кто-нибудь знает, какЯ могу загрузить артефакт из многоступенчатого конвейера, используя -deployment вместо -job?

Рабочая версия с заданием, просто для справки:

  dependsOn: Deploy_Test
  # Only deploy when build is from master
  condition: and(succeeded(), eq(variables['build.sourceBranch'], 'refs/heads/master'))
  jobs:
  - job: 'Deploy_Acc'
    pool:
      vmImage: 'ubuntu-latest'

    steps:
      # Download build artifact
      - download: current
        artifact: Templates

      # Deploy acceptation infra
      - task: AzureResourceManagerTemplateDeployment@3
        displayName: 'Deploy acceptation infrastructure'
        inputs:
          deploymentScope: 'Resource Group'
          ConnectedServiceName: '***'
          subscriptionName: '***'
          action: 'Create Or Update Resource Group'
          resourceGroupName: '***-acc'
          location: 'West Europe'
          templateLocation: 'Linked artifact'
          csmFile: 'azuredeploy.json'
          csmParametersFile: 'azuredeploy-parameters-acc.json'
          deploymentMode: 'incremental' ```

1 Ответ

2 голосов
/ 24 октября 2019

Я не вижу ничего плохого в вашем коде. В своем создании артефакта вы использовали "Опубликовать артефакт конвейера"?

Publish Pipeline Artifact

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...