aboutsummaryrefslogtreecommitdiff
path: root/scripts/azure-pipelines/osx/azure-pipelines.yml
blob: a8d94f6f647b3e0cdb0bad88842422e0c2cbc027 (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
89
90
91
92
93
94
# Copyright (c) Microsoft Corporation.
# SPDX-License-Identifier: MIT
#

parameters:
- name: poolName
  type: string
- name: mode
  type: string
  values:
    - 'AllPorts'
    - 'NonTensorflow'
    - 'OnlyTensorflow'
- name: jobName
  type: string
  default: x64_osx

jobs:
- job: "${{ parameters.jobName }}"
  pool:
    name: ${{ parameters.poolName }}
  workspace:
    clean: resources
  timeoutInMinutes: 1440 # 1 day
  variables:
  - name: WORKING_ROOT
    value: /Users/vagrant/Data
  - name: VCPKG_DOWNLOADS
    value: /Users/vagrant/Data/downloads
  - group: vcpkg-binary-caching-credentials
  - name: X_VCPKG_BINARY_SOURCE_STUB
    value: "x-azblob,$(root-bin-url),$(sas-bin)"
  - group: vcpkg-asset-caching-credentials
  - name: X_VCPKG_ASSET_SOURCES
    value: "x-azurl,$(root-url),$(sas),readwrite"
  - name: PowershellExtraArguments
    ${{ if eq(parameters.mode, 'AllPorts') }}:
      value: ''
    ${{ if eq(parameters.mode, 'NonTensorflow') }}:
      value: "-AdditionalSkips @('tensorflow', 'tensorflow-cc')"
    ${{ if eq(parameters.mode, 'OnlyTensorflow') }}:
      value: "-OnlyTest @('tensorflow', 'tensorflow-cc')"
  - name: Postfix
    ${{ if eq(parameters.mode, 'OnlyTensorflow') }}:
      value: '-tensorflow'
    ${{ if ne(parameters.mode, 'OnlyTensorflow') }}:
      value: ''

  steps:
  - bash: df -h
    displayName: 'Report on Disk Space'
  - bash: |
      sudo rm -rf ${{ variables.VCPKG_DOWNLOADS }} || 0
      sudo mkdir ${{ variables.VCPKG_DOWNLOADS }} || 0
      sudo chmod 777 ${{ variables.VCPKG_DOWNLOADS }} || 0
      exit 0
    displayName: 'Create ${{ variables.VCPKG_DOWNLOADS }}'
  - task: Bash@3
    displayName: 'Build vcpkg'
    inputs:
      filePath: bootstrap-vcpkg.sh
  - task: PowerShell@2
    displayName: '*** Test Modified Ports and Prepare Test Logs ***'
    inputs:
      failOnStderr: true
      filePath: 'scripts/azure-pipelines/test-modified-ports.ps1'
      arguments: >
        -Triplet "x64-osx"
        -BuildReason "$(Build.Reason)"
        -BinarySourceStub "${{ variables.X_VCPKG_BINARY_SOURCE_STUB }}"
        -WorkingRoot "${{ variables.WORKING_ROOT }}"
        -ArtifactStagingDirectory "$(Build.ArtifactStagingDirectory)"
        ${{ variables.PowershellExtraArguments }}
      pwsh: true
  - bash: |
      df -h
    displayName: 'Report on Disk Space After Build'
    condition: always()
  - task: PublishBuildArtifacts@1
    displayName: 'Publish Artifact: failure logs for x64-osx'
    inputs:
      PathtoPublish: '$(Build.ArtifactStagingDirectory)/failure-logs'
      ArtifactName: 'failure logs for x64-osx${{ variables.Postfix }}'
    condition: ne(variables['FAILURE_LOGS_EMPTY'], 'True')
  - bash: |
      python3 scripts/file_script.py /Users/vagrant/Data/installed/vcpkg/info/
    displayName: 'Build a file list for all packages'
    condition: always()
  - task: PublishBuildArtifacts@1
    displayName: 'Publish Artifact: file lists for x64-osx${{ variables.Postfix }}'
    condition: always()
    inputs:
      PathtoPublish: scripts/list_files
      ArtifactName: 'file lists for x64-osx${{ variables.Postfix }}'