91 lines
3.5 KiB
YAML
91 lines
3.5 KiB
YAML
parameters:
|
|
architecture: x64
|
|
|
|
jobs:
|
|
- job: vpack_${{ parameters.architecture }}
|
|
variables:
|
|
- group: vPack
|
|
|
|
displayName: Build and Publish VPack - ${{ parameters.architecture }}
|
|
condition: succeeded()
|
|
pool: PowerShell1ES
|
|
steps:
|
|
- checkout: self
|
|
clean: true
|
|
|
|
- template: ./SetVersionVariables.yml
|
|
parameters:
|
|
ReleaseTagVar: $(ReleaseTagVar)
|
|
|
|
- pwsh: |
|
|
$azcopy = "C:\Program Files (x86)\Microsoft SDKs\Azure\AzCopy\AzCopy.exe"
|
|
|
|
Write-Host "running: $azcopy /Source:https://$(StorageAccount).blob.core.windows.net/$(AzureVersion) /Dest:$(System.ArtifactsDirectory) /S /SourceKey:****** /Pattern:PowerShell-$(Version)-win-${{ parameters.architecture }}.zip /Z:$(AGENT.TEMPDIRECTORY)"
|
|
& $azcopy /Source:https://$(StorageAccount).blob.core.windows.net/$(AzureVersion) /Dest:$(System.ArtifactsDirectory) /S /SourceKey:$(StorageAccountKey) /Pattern:PowerShell-$(Version)-win-${{ parameters.architecture }}.zip /Z:$(AGENT.TEMPDIRECTORY)
|
|
displayName: 'Download Azure Artifacts'
|
|
|
|
- pwsh: 'Get-ChildItem $(System.ArtifactsDirectory)\* -recurse | Select-Object -ExpandProperty Name'
|
|
displayName: 'Capture Artifact Listing'
|
|
|
|
- pwsh: |
|
|
$message = @()
|
|
Get-ChildItem $(System.ArtifactsDirectory)\* -recurse -include *.zip, *.msi | ForEach-Object {
|
|
if($_.Name -notmatch 'PowerShell-\d\.\d\.\d\-([a-z]*.\d+\-)?win\-(fxdependent|x64|arm32|arm64|x86|fxdependentWinDesktop)\.(msi|zip){1}')
|
|
{
|
|
$messageInstance = "$($_.Name) is not a valid package name"
|
|
$message += $messageInstance
|
|
Write-Warning $messageInstance
|
|
}
|
|
}
|
|
|
|
if($message.count -gt 0){throw ($message | out-string)}
|
|
displayName: 'Validate Zip and MSI Package Names'
|
|
|
|
- pwsh: |
|
|
Get-ChildItem $(System.ArtifactsDirectory)\* -recurse -include *.zip, *.msi | ForEach-Object {
|
|
if($_.Name -match 'PowerShell-\d\.\d\.\d\-([a-z]*.\d+\-)?win\-(${{ parameters.architecture }})\.(zip){1}')
|
|
{
|
|
$destDir = "$(System.ArtifactsDirectory)\vpack${{ parameters.architecture }}"
|
|
$null = new-item -ItemType Directory -Path $destDir
|
|
Expand-Archive -Path $_.FullName -DestinationPath $destDir
|
|
$vstsCommandString = "vso[task.setvariable variable=vpackDir]$destDir"
|
|
Write-Host "sending " + $vstsCommandString
|
|
Write-Host "##$vstsCommandString"
|
|
}
|
|
}
|
|
displayName: 'Extract Zip'
|
|
|
|
- pwsh: |
|
|
$vpackVersion = '$(version)'
|
|
|
|
if('$(VPackPublishOverride)' -ne '' -and '$(VPackPublishOverride)' -ne 'None' )
|
|
{
|
|
Write-Host "Using VPackPublishOverride varabile"
|
|
$vpackVersion = '$(VPackPublishOverride)'
|
|
}
|
|
|
|
$vstsCommandString = "vso[task.setvariable variable=vpackVersion]$vpackVersion"
|
|
Write-Host "sending " + $vstsCommandString
|
|
Write-Host "##$vstsCommandString"
|
|
displayName: 'Set vpackVersion'
|
|
|
|
- pwsh: |
|
|
Get-ChildItem -Path env:
|
|
displayName: Capture Environment
|
|
condition: succeededOrFailed()
|
|
|
|
- task: PkgESVPack@12
|
|
displayName: 'Package ES - VPack '
|
|
inputs:
|
|
sourceDirectory: '$(vpackDir)'
|
|
description: PowerShell ${{ parameters.architecture }} $(version)
|
|
pushPkgName: 'PowerShell.${{ parameters.architecture }}'
|
|
configurations: Release
|
|
platforms: x64
|
|
target: '$(System.ArtifactsDirectory)'
|
|
owner: tplunk
|
|
provData: false
|
|
version: '$(vpackVersion)'
|
|
vpackToken: $(vPackPat)
|
|
condition: and(succeeded(), eq(variables['Build.Reason'], 'Manual'))
|