Ich habe einen Build-Prozess, bei dem ich ein Token verwenden muss, das ich über AWSCLI erhalten habe. Bisher habe ich aws mit meinen Azure-Pipelines verbunden, aber ich habe Probleme beim Einrichten meiner yaml. Ich möchte das relevante Token abrufen, um es später als Variable in meinem Skript zu verwenden.
Wie Sie in meinem yaml sehen können, führe ich ein Powershell-Skript mit codeartifact aus und speichere den Wert in meiner myOutputVar. Das Powershell-Skript gibt keinen Fehler aus. Später, wenn ich das Erstellungsskript ausführe, ist diese Variable jedoch nicht vorhanden, was dazu führt, dass ECHO deaktiviert ist.
How can I ensure the value received in the task can be used later in the script/build part?
trigger:
- azure-pipelines
pool:
vmImage: windows-latest
steps:
- task: NodeTool@0
inputs:
versionSpec: '10.x'
displayName: 'Install Node.js'
- task: AWSPowerShellModuleScript@1
inputs:
awsCredentials: 'AWS Connection'
regionName: 'eu-central-1'
scriptType: 'inline'
inlineScript: '##vso[task.setvariable variable=myOutputVar;]aws codeartifact get-authorization-token --domain somedomain --domain-owner 444.... --query authorizationToken --output text; '
- script: |
echo %myOutputVar%
npm ci
npm run build
displayName: 'npm install and build'
Lösung des Problems
Ihr Inline-Skript kann aus mehreren Zeilen bestehen, und da dies PowerShell ist, können Sie Folgendes tun:
inlineScript: |
$authToken = aws codeartifact get-authorization-token `
--domain somedomain `
--domain-owner 444.... `
--query authorizationToken `
--output text
Write-Host "##vso[task.setvariable variable=myOutputVar;]$authToken"
Keine Kommentare:
Kommentar veröffentlichen