# 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 steps: - task: PowerShell@2 displayName: 'Report on Disk Space' condition: always() inputs: filePath: 'scripts/azure-pipelines/windows/disk-space.ps1' pwsh: true # Note: D: is the Azure machines' temporary disk. - script: .\bootstrap-vcpkg.bat displayName: 'Build vcpkg' - task: CmdLine@2 displayName: "Build vcpkg with CMake, with older VS, and Run Tests" condition: eq('${{ parameters.triplet }}', 'x86-windows') inputs: script: | :: TRANSITION, get these tools on the VMs next time we roll them .\vcpkg.exe fetch cmake .\vcpkg.exe fetch ninja set PATH=${{ variables.VCPKG_DOWNLOADS }}\tools\cmake-3.19.2-windows\cmake-3.19.2-win32-x86\bin;${{ variables.VCPKG_DOWNLOADS }}\tools\ninja-1.10.1-windows;%PATH% call "C:\Program Files (x86)\Microsoft Visual Studio\2019\Enterprise\Common7\Tools\VsDevCmd.bat" -arch=x86 -host_arch=x86 rmdir /s /q build.x86.debug > nul 2> nul cmake.exe -G Ninja -DCMAKE_BUILD_TYPE=Debug -DBUILD_TESTING=ON -DVCPKG_DEVELOPMENT_WARNINGS=ON -DVCPKG_WARNINGS_AS_ERRORS=ON -DVCPKG_BUILD_FUZZING=ON -B build.x86.debug -S toolsrc ninja.exe -C build.x86.debug build.x86.debug\vcpkg-test.exe cmake -G "Visual Studio 16 2019" -A Win32 -T v140 -DBUILD_TESTING=OFF -DVCPKG_DEVELOPMENT_WARNINGS=OFF -DVCPKG_WARNINGS_AS_ERRORS=ON -DVCPKG_BUILD_FUZZING=OFF -B build.x86.vs2015 -S toolsrc cmake --build build.x86.vs2015 cmake -G "Visual Studio 16 2019" -A Win32 -T v141 -DBUILD_TESTING=OFF -DVCPKG_DEVELOPMENT_WARNINGS=OFF -DVCPKG_WARNINGS_AS_ERRORS=ON -DVCPKG_BUILD_FUZZING=OFF -B build.x86.vs2017 -S toolsrc cmake --build build.x86.vs2017 failOnStderr: true - task: PowerShell@2 displayName: 'Run vcpkg end-to-end tests' condition: eq('${{ parameters.triplet }}', 'x86-windows') inputs: filePath: 'scripts/azure-pipelines/end-to-end-tests.ps1' arguments: '-Triplet ${{ parameters.triplet }} -WorkingRoot ${{ variables.WORKING_ROOT }}' 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 pwsh: true - 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: '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 }}'