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!