aboutsummaryrefslogtreecommitdiff
path: root/scripts/azure-pipelines/windows/azure-pipelines.yml
blob: 34916a09aab5cfdbffd119ff6535966751623c13 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
# 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: 'Initialize Environment'
    inputs:
      filePath: 'scripts/azure-pipelines/windows/initialize-environment.ps1'
      pwsh: true
  - 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 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.18.4-windows\cmake-3.18.4-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
      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: '*** 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) -ArchivesRoot W:\ -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: failed()
  - 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 }}'