# 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) -EnforceCascades' 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 }}'