Azure DevOps, pipelines de lançamento YAML? [fechadas]


87

Estou seguindo este processo para criar um pipeline de compilação YAML para um projeto de API da Web do .NET Core:

https://docs.microsoft.com/en-us/azure/devops/pipelines/get-started-yaml?view=vsts

Quando se trata de lançá-lo, observo que o (recentemente renomeado) Azure DevOps não parece oferecer suporte a YAML para definir pipelines de lançamento. No entanto, posso ver que as tarefas de implantação foram definidas, por exemplo:

https://docs.microsoft.com/en-us/azure/devops/pipelines/tasks/deploy/azure-rm-web-app-deployment?view=vsts

Esperamos uma atualização da funcionalidade de pipelines de lançamento para oferecer suporte a YAML e, em caso afirmativo, quando?


Em breve, no Build 2019: youtube.com/watch?v=ORy3OeqLZlE Pipelines de vários estágios (e lançamento YAML) agora está em visualização. Habilite-o no item de menu Visualizar recursos.
nullforce

2
Alguém poderia me ajudar a entender por que essa questão está fora do assunto? Para mim, parece uma boa pergunta para stackoverflow.
Tobske

Respostas:


59

No momento em que escrevemos esta resposta, a linha do tempo dos recursos reflete os lançamentos do yaml que estão chegando no terceiro trimestre de 2018.

https://docs.microsoft.com/en-us/azure/devops/release-notes/

Atualização: Isso foi alterado algumas vezes. É recomendável verificar os comentários abaixo, pois as pessoas fornecem atualizações à medida que as encontram.

Atualizar

De acordo com os comentários, isso agora é possível: https://devblogs.microsoft.com/devops/whats-new-with-azure-pipelines/ . O seguinte é copiado e colado do artigo e demonstra o uso de vários estágios:

stages:
- stage: Build
  jobs:
  - job: Build
    pool:
      vmImage: 'Ubuntu-16.04'
    continueOnError: true
    steps:
    - script: echo my first build job
- stage: Deploy
  jobs:
    # track deployments on the environment
  - deployment: DeployWeb
    pool:
      vmImage: 'Ubuntu-16.04'
    # creates an environment if it doesn’t exist
    environment: 'smarthotel-dev'
    strategy:
      # default deployment strategy
      runOnce:
        deploy:
          steps:
          - script: echo my first deployment

9
Agora está nos recursos do quarto trimestre de 2018.
sschoof


6
Entrei em contato via twitter ontem. As definições de versão YAML estão sendo trabalhadas no minuto com o objetivo de entrar em uma prévia privada no final de março. Tópico completo em twitter.com/gopinach/status/1088320931745935360?s=21
rh072005

5
Último item de trabalho rastreando isto - dev.azure.com/mseng/AzureDevOpsRoadmap/_workitems/edit/1364226
antmeehan


6

A experiência de criação de pipeline de construção YAML está em pré-visualização. (hoje é 04/12/2018)

YAML para canais de lançamento parece ainda estar longe: 2º trimestre de 2019

Os recursos de visualização podem ser ativados em seu perfil da seguinte forma:

menu de perfil

Recurso YAML

EDIT: Como nullforce aponta nos comentários, isso só permite uma experiência YAML para construir pipelines e não para liberar pipelines.

ATUALIZAÇÃO (2016-05-16): Seguindo o "Build 2019" da Microsoft, a experiência YAML completa para construção e implantação agora deve ser possível no mesmo arquivo de pipelines YAML.


3
Esta pergunta é sobre pipelines de lançamento, não pipelines de construção. O recurso de visualização que você indicou ativa apenas o pipeline de construção YAML.
nullforce

@nullforce Obrigado, adicionei sua correção à minha resposta e tentarei mantê-la atualizada se estiver habilitado para pipelines de lançamento ou quando o yaml sair da visualização também.
Jim Wolff

1
Ainda não está disponível.
ATL_DEV

@ATL_DEV você poderia elaborar um estado, ou link para recursos sobre isso, para que eu possa corrigir a resposta. Para mim, parece que está disponível: docs
Jim Wolff

@Jim Wolff-- Microsoft é mentirosa! As partes de liberação e implantação só podem ser configuradas por meio de sua interface de usuário de baixa qualidade.
ATL_DEV

5

A equipe de produto está trabalhando nisso. Você pode acompanhar a atualização por meio das notas de lançamento .


1
"A equipe de produto" não fez nada após 1 ano. A IU do Azure Dev Ops ainda é horrível e o suporte yaml para implantação ainda não existe, apesar de todas as promessas vazias. A documentação não existe e está espalhada por toda a rede. O Azure Dev Ops é um pesadelo de usar! A Microsoft deve encontrar outra coisa para fazer,
ATL_DEV

Apenas por uma questão de precisão técnica - apesar do comentário postado em novembro de 2019 dizendo que o suporte YAML para implantação "ainda não está lá", ele foi adicionado ao Azure DevOps (sem espaço) em maio de 2019. Outras respostas e comentários aprofundam-se nisso. Só queria ter certeza de que alguém lendo isso terá uma ideia errada.
MikeBaz - MSFT de

4

Estou fazendo algo assim neste exato momento, mas estou usando as APIs REST atuais. O que estou fazendo é algo semelhante ao que documentei aqui ( Como você importa uma definição de versão no VSTS? ). Basicamente, estou salvando um arquivo de modelo JSON Release Pipeline no repositório de código-fonte com marcadores de posição variáveis ​​e um número de versão incorporado. A seguir, tenha um script do PowerShell que está chamando o Azure DevOps (é uma palavra longa, preferi digitar VSTS, talvez comece a digitar AD)

  • Existem APIs REST para verificar se o Release Pipeline existe - funciona
  • Crie se não existir - funciona
  • Compare as versões incorporadas e atualize e, se necessário (estou preso aqui, mas vou resolver isso, retornando o erro de que o pipeline que está sendo atualizado não mudou, embora eu tenha alterado).

Quero que isso seja executado durante o pipeline de compilação, para que não precise mais modificar muitos pipelines de lançamento semelhantes manualmente. Eu preferiria que fosse um arquivo YAML também, mas é o que tenho hoje. Eu espero que isso ajude.


1
Estou preso e interrompi meu esforço de trabalho no processo de ATUALIZAÇÃO. Por quê? O modelo json de definição de lançamento possui um ID para cada etapa de construção. Os IDs devem ser um número específico quando o Release Pipeline está sendo criado. O número de identificação é alterado após sua criação. Portanto, quando você ATUALIZA o Release Pipeline, não pode mais usar os "novos" números de ID de estágio (eles são reservados ao criar inicialmente um Release Pipeline), mas em vez disso, você precisa usar o agora válido Staged ID que pode ser qualquer coisa.
Antebios

Portanto, o processo real deve ser: Para criar o modelo de uso do processo. Para a definição da versão do download do processo de atualização e compare com o modelo e a definição da versão baixada da atualização e, em seguida, atualize-a de volta para o VSTS. Uau! Isso significa que preciso escrever meu próprio processo de comparação e verificação de erros.
Antebios

na verdade, para uma nova definição de versão (POST), você pode ignorar a idpropriedade - idpara o objeto de definição de versão e em todos os environmentobjetos pode ser ignorado - definir a rankpropriedade deve ser suficiente (junto com outras obrigatórias) - a chamada POST deve criar automaticamente os IDs e retornam no objeto de resposta. Uma vez que a definição de versão é criada, para obter todas as definições em sua organização, você pode fazer uma LISTdefinição de versão - a chamada GET está documentada aqui
ofuscar

-5

Os pipelines são compostos por um ou mais jobs e podem incluir recursos e variáveis. Os trabalhos são compostos de uma ou mais etapas mais alguns dados específicos do trabalho. As etapas podem ser tarefas, scripts ou referências a modelos externos. Isso se reflete na estrutura do arquivo YAML. Visite aqui para obter detalhes


5
Não adicione assinaturas às suas postagens; eles podem ser considerados spam.
Zoe de
Ao utilizar nosso site, você reconhece que leu e compreendeu nossa Política de Cookies e nossa Política de Privacidade.
Licensed under cc by-sa 3.0 with attribution required.