mirror of
https://github.com/microsoft/vcpkg.git
synced 2024-12-05 05:19:08 +08:00
f78c96f706
* Decouple the storage account used for binary caching from the images. We are being forced to change infrastructure somewhat more frequently than we would like, so change the binary caches to use a shared storage account like we already use for asset caching. * blob blob blob * Add quotes * Avoid name stomping.
107 lines
3.9 KiB
YAML
107 lines
3.9 KiB
YAML
# Copyright (c) Microsoft Corporation.
|
|
# SPDX-License-Identifier: MIT
|
|
#
|
|
|
|
jobs:
|
|
- job: ${{ parameters.jobName }}
|
|
pool:
|
|
name: ${{ parameters.poolName }}
|
|
workspace:
|
|
clean: resources
|
|
timeoutInMinutes: 1440 # 1 day
|
|
variables:
|
|
- name: WORKING_ROOT
|
|
value: D:\
|
|
- name: VCPKG_DOWNLOADS
|
|
value: D:\downloads
|
|
- group: vcpkg-asset-caching-credentials
|
|
- name: X_VCPKG_ASSET_SOURCES
|
|
value: "x-azurl,$(root-url),$(sas),readwrite"
|
|
- group: vcpkg-binary-caching-credentials
|
|
- name: X_VCPKG_BINARY_SOURCE_STUB
|
|
value: "x-azblob,$(root-bin-url),$(sas-bin)"
|
|
|
|
steps:
|
|
- task: PowerShell@2
|
|
displayName: 'Report on Disk Space'
|
|
condition: always()
|
|
inputs:
|
|
filePath: 'scripts/azure-pipelines/windows/disk-space.ps1'
|
|
pwsh: true
|
|
# Note: E: is the Azure machines' temporary disk.
|
|
- script: .\bootstrap-vcpkg.bat
|
|
displayName: 'Bootstrap vcpkg'
|
|
- script: |
|
|
if exist ${{ variables.VCPKG_DOWNLOADS }} rmdir /S /Q ${{ variables.VCPKG_DOWNLOADS }} 2>&1
|
|
displayName: 'Clean downloads'
|
|
- task: PowerShell@2
|
|
displayName: '*** Test Modified Ports and Prepare Test Logs ***'
|
|
inputs:
|
|
failOnStderr: true
|
|
filePath: 'scripts/azure-pipelines/test-modified-ports.ps1'
|
|
arguments: '-Triplet ${{ parameters.triplet }} -BuildReason $(Build.Reason) -BinarySourceStub "$(X_VCPKG_BINARY_SOURCE_STUB)" -WorkingRoot ${{ variables.WORKING_ROOT }} -ArtifactStagingDirectory $(Build.ArtifactStagingDirectory)'
|
|
pwsh: true
|
|
- task: PowerShell@2
|
|
displayName: 'Validate version files'
|
|
condition: eq('${{ parameters.triplet }}', 'x86-windows')
|
|
inputs:
|
|
targetType: inline
|
|
script: |
|
|
./vcpkg.exe --feature-flags=versions x-ci-verify-versions --verbose |
|
|
ForEach-Object -Begin {
|
|
$long_error = ''
|
|
} -Process {
|
|
if ($long_error -ne '' -and $_ -match '^$|^ ') {
|
|
# Extend multi-line message
|
|
$long_error = -join($long_error, "%0D%0A", $_ -replace '^ ','' `
|
|
-replace '(git add) [^ ]*\\ports\\([^ ]*)', '$1 ports/$2' )
|
|
} else {
|
|
if ($long_error -ne '') {
|
|
# Flush multi-line message
|
|
$long_error
|
|
$long_error = ''
|
|
}
|
|
if ($_ -match '^Error: ') {
|
|
# Start multi-line message
|
|
$long_error = $_ -replace '^Error: ', '##vso[task.logissue type=error]' `
|
|
-replace '(^##vso[^\]]*)](.*) [^ ]*\\versions\\(.-)\\(.*.json)(.*)', '$1;sourcepath=versions/$3/$4;linenumber=2]$2 version/$3/$4$5'
|
|
} else {
|
|
# Normal line
|
|
$_
|
|
}
|
|
}
|
|
} -End {
|
|
if ($long_error -ne '') {
|
|
# Flush multi-line message
|
|
$long_error
|
|
}
|
|
}
|
|
pwsh: true
|
|
- task: PowerShell@2
|
|
displayName: 'Report on Disk Space After Build'
|
|
condition: always()
|
|
inputs:
|
|
filePath: 'scripts/azure-pipelines/windows/disk-space.ps1'
|
|
pwsh: true
|
|
- task: PublishBuildArtifacts@1
|
|
displayName: 'Publish Artifact: failure logs for ${{ parameters.triplet }}'
|
|
inputs:
|
|
PathtoPublish: '$(Build.ArtifactStagingDirectory)\failure-logs'
|
|
ArtifactName: 'failure logs for ${{ parameters.triplet }}'
|
|
condition: always()
|
|
- task: PowerShell@2
|
|
displayName: 'Build a file list for all packages'
|
|
condition: always()
|
|
inputs:
|
|
targetType: inline
|
|
script: |
|
|
./vcpkg.exe fetch python3
|
|
& $(.\vcpkg fetch python3) .\scripts\file_script.py D:\installed\vcpkg\info\
|
|
pwsh: true
|
|
- task: PublishBuildArtifacts@1
|
|
displayName: 'Publish Artifact: file lists for ${{ parameters.triplet }}'
|
|
condition: always()
|
|
inputs:
|
|
PathtoPublish: scripts/list_files
|
|
ArtifactName: 'file lists for ${{ parameters.triplet }}'
|