mirror of
https://github.com/microsoft/vcpkg.git
synced 2024-12-05 05:29:02 +08:00
403c952a0c
Now that vcpkg has artifact caching, meaning downloading artifacts usually doesn't have to leave the datacenter, there's no need to potentially dirty different runs with leftover downloads from each other. This resulted in some "impossible" results in https://github.com/microsoft/vcpkg/pull/18687 where a previous PR run accidentially downloaded the Windows version of nodejs to /mnt/vcpkg-ci/downloads/node-v14.17.4-linux-x64.tar.xz
104 lines
3.7 KiB
YAML
104 lines
3.7 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"
|
|
|
|
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: |
|
|
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) -UseEnvironmentSasToken -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 }}'
|