Featured image of post 1 - Drops: Pipelines — YML

1 - Drops: Pipelines — YML

Entendendo o YML: YAML Ain’t Markup Language

Para continuar nossa jornada de Azure Pipelines, precisamos entender o mínimo de YML. A maioria das ferramentas de pipelines utiliza o YML como padrão de serialização (codificação de dados). Por isso, entender o mínimo já nos ajuda evitar alguns erros no momento de executar qualquer pipeline.

Vou abordar de maneira simples o YML para facilitar o entendimento de quem está começando. Podemos salvar o arquivo em duas extensões: .yml ou .yaml as duas formas são reconhecidas; a boa prática é sempre usar em lowcase.

Dica: espaço em YML é muito importante, por isso sempre use um PAR de espaços e não Tab; quando precisar comentar use o #(hash).

# seu comentário

Para iniciar um documento temos uma opção que não é obrigatória, porém útil quando estamos trabalhando com mais de uma definição por arquivo. Iniciamos o arquivo com 3 hifens e finalizamos com 3 pontos.`

---
#só um comentário
...

Mapeamento permite listar chaves com valores. Isso é útil nos casos em que você está atribuindo um nome ou uma propriedade a um elemento específico.

cerveja: tecnologia
copo: campo

Às vezes precisamos trabalhar com listas e dicionários. Abaixo deixo dois exemplos do que eles são: Listas são coleções de itens que você define usando hífen:

---
---  
-  apenas comece  
-  entenda os conceitos  
-  estude no seu tempo---  
ferramentas:  
 - docker  
 - kubernetes  
 - terraform  
 - ansible

Dicionários são coleções de mapeamentos de chave: valor. No exemplo abaixo, em que eu estou mapeando os dados de um pagador, tenho diversos dados, como: ‘pessoa’, ‘família’ e ‘endereço’. Porém, dentro de ‘endereço’ possuo outros dados. Isso tudo é um dicionário.

pagador: &id001
  pessoa: Chris
  familia: Dumars
  endereco:
    rua: |
          458 Walkman Dr.
          Suite #292          
    cidade: Royal Oak
    estado: MI
    cep: 48046

Existem casos que repetimos os mesmos dados em diversas linhas de nosso código. Para evitar que o tamanho do documento fique muito grande, podemos repetir esse código trabalhando com âncoras. Basta usar ‘E’ Comercial &+String para criar uma âncora e usar asterisco *+String para criar a referência da âncora. Veja abaixo:

copodecerveja: &tecnologia
  - dados_disponiveis: 2.5M
  - usuarios_conectados: 39k
  - linhas_de_codigos: "+10.216.248"
  - squads: "+50"
  - produtos:"+70"
mesadobar: *tecnologia # Aqui estamos dizendo que a mesadobar tem os mesmos dados do copodecerveja

Podemos também usar multilinhas para atribuir nossos valores, usando: |(pipe) um bloco literal que irá inserir quebras de linhas em seu texto. E >(maior) bloco dobrado que irá substituir todas as quebras de linhas por espaços simples.

---
literal: |
       do código ao campo
       do campo ao código       
---
dobrado: >
       do código ao campo
       do campo à mesa do bar       
...

Se convertermos esses dois exemplos em JSON, podemos ver melhor o que quis dizer.

{

"literal": "do código ao campo\ndo campo ao código\n",

"dobrado": "do código ao campo do campo à mesa do bar\n"

}

Vou deixar um exemplo de uma ordem de venda que contém dados da operação.

nota_fiscal: 34843
data: 2001-01-23
pagador: &id001
  pessoa: Chris
  familia: Dumars
  endereco:
    rua: |
        458 Walkman Dr.
        Suite #292        
    cidade: Royal Oak
    estado: MI
    cep: 48046
envio: *id001
produto:
- id_produto: BL394D
  quantidade: 4
  descricao : Basketball
  preco: 450.00
- id_produto: BL4438H
  quantidade : 1
  descricao: Super Hoop
  preco: 2392.00
taxa : 251.42
total: 4443.52
...

No dia-dia, o yml salva nossas vidas por ser simples e poderoso ao mesmo tempo. Quando se trata de pipelines, o yml ajuda a reduzir a curva de aprendizagem de qualquer ferramenta por ser fácil de ler e entender.

Espero que tenha te ajudado, nos vemos em breve na sequência da nossa jornada em Azure Pipelines. Valeu!

comments powered by Disqus
Criado com Hugo
Tema Stack desenvolvido por Jimmy