Como gravar um script de PowerShell multilinha em linha em uma tarefa do Azure Pipelines PowerShell?

8

O esquema yaml para uma tarefa do PowerShell permite selecionar targetType: 'inline' e definir um script na entrada script:

Mas qual é o formato correto para escrever um script com mais de uma linha?

Os documentos não especificam como e o uso de um pipe na linha um (como é especificado para a tarefa Linha de Comando) não funciona.

Ola Eldøy
fonte

Respostas:

8

Você pode usar o caractere de barra vertical (o indicador escalar literal do bloco ) para definir um bloco de texto de várias linhas com caracteres de nova linha, como seu script embutido; por exemplo, assim:

- task: PowerShell@2
  inputs:
    targetType: 'inline'
    script: |
      # Write your PowerShell commands here.
      Write-Host "Hello world"
      Write-Host "Hullo clouds"
      Write-Host "Hullo sky"
Vince Bowdren
fonte
0

É possível encadear o comando do PowerShell usando ponto e vírgula . Então, com efeito, escrevendo vários comandos em uma linha, separados por ponto e vírgula.

(Esteja ciente do limite de linha de 5000 caracteres nos Pipelines do Azure.)

Ola Eldøy
fonte
Obrigado por compartilhar a solução, você pode aceitá-la como resposta. Isso pode ser benéfico para outros membros da comunidade que estão lendo este tópico.
Andy Li-MSFT
0

É possível usar apenas a tarefa do PowerShell como esta:

# Job definition etc
steps:
  - powershell: |
      Write-Host A
      Write-Host B
      Write-Host C
  - task: AzureRmWebAppDeployment@4
      # The rest of this task is omitted.

Se você usar powershell, em vez task: PowerShell@2dos padrões tipo de destino para inlinee você não precisará configurá-lo novamente.

Martin Brown
fonte