Skip to content
Latchkey

O Que É uma String Multilinha em YAML? Explicado

Uma string multilinha em YAML é um block scalar que permite escrever texto abrangendo várias linhas, controlando se as quebras de linha são mantidas ou dobradas em espaços.

Cedo ou tarde um passo de workflow precisa de um script multilinha, e é aí que entram os block scalars do YAML. O YAML oferece alguns estilos para escrever texto longo por muitas linhas, e a escolha entre eles decide se suas quebras de linha sobrevivem. Acertar isso é a diferença entre um shell script que roda e um que colapsa em uma única linha quebrada.

O que é uma string multilinha

Uma string multilinha em YAML, ou block scalar, permite que um único valor abranja múltiplas linhas usando um indicador inicial em vez de aspas. O texto continua enquanto permanecer indentado sob a chave. É assim que você embute um shell script inteiro ou uma mensagem longa como um único valor YAML.

Literal versus folded

O estilo literal (o caractere pipe) preserva cada quebra de linha exatamente como escrita, que é o que você quer para scripts onde as quebras de linha são comandos. O estilo folded (o caractere maior-que) junta linhas com espaços, transformando seu bloco em uma linha longa - bom para prosa, errado para scripts.

Indicadores de chomping

Um modificador final controla a quebra de linha final: um bloco simples mantém uma quebra de linha final, um menos remove as quebras de linha finais (clip vs strip), e um mais mantém todas elas. Esses detalhes raramente importam para um script, mas podem importar quando os bytes exatos do valor são significativos.

Strings multilinha no CI

O uso mais comum é um passo de run multilinha. Você escreve o script sob um bloco literal para que cada linha seja um comando separado. Usar o estilo folded aqui é um bug clássico: os comandos rodam esmagados em uma linha e falham de maneiras confusas.

A literal block script in CI
# A multi-line run step using a literal block
steps:
  - run: |
      echo "building"
      npm ci
      npm run build

Nota Latchkey

Passos de run multilinha se comportam da mesma forma nos runners Latchkey, então seus scripts existentes em bloco literal executam linha por linha exatamente como fazem nos runners hospedados pelo GitHub.

Principais conclusões

  • Uma string multilinha em YAML (block scalar) permite que um valor abranja várias linhas indentadas.
  • O estilo literal (pipe) mantém as quebras de linha; o estilo folded (maior-que) junta linhas com espaços.
  • No CI, escreva scripts de run multilinha como blocos literais para que cada linha permaneça um comando separado.

Guias relacionados