build_task.yml 4.48 KB
Newer Older
peterjc123's avatar
peterjc123 committed
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
parameters:
  package: ''
  spec: ''
  jobDesc: ''
  packageDesc: ''
  msagent: true
  cpuEnabled: true
  cudaEnabled: true
  condaEnabled: true
  wheelsEnabled: true
  override: false

jobs:
- job: 'Windows_${{ parameters.spec }}_${{ parameters.package }}_Build'
  timeoutInMinutes: 60
  cancelTimeoutInMinutes: 5
  condition: > 
    or(and(eq('${{ parameters.package }}', 'Conda'), eq('${{ parameters.spec }}', 'CPU'),
           eq('${{ parameters.condaEnabled }}', 'true'), eq('${{ parameters.cpuEnabled }}', 'true')),
       and(eq('${{ parameters.package }}', 'Wheels'), eq('${{ parameters.spec }}', 'CPU'),
           eq('${{ parameters.wheelsEnabled }}', 'true'), eq('${{ parameters.cpuEnabled }}', 'true')),
       and(eq('${{ parameters.package }}', 'Conda'), eq('${{ parameters.spec }}', 'CUDA'),
           eq('${{ parameters.condaEnabled }}', 'true'), eq('${{ parameters.cudaEnabled }}', 'true')),
       and(eq('${{ parameters.package }}', 'Wheels'), eq('${{ parameters.spec }}', 'CUDA'),
           eq('${{ parameters.wheelsEnabled }}', 'true'), eq('${{ parameters.cudaEnabled }}', 'true')))
  variables:
    - ${{ if eq(parameters.override, 'true') }}:
      - name: TORCHVISION_BUILD_NUMBER
        value: 1
      - name: PYTORCH_REPO
        value: 'pytorch'
      - name: PYTORCH_BRANCH
        value: 'v0.4.0'
    - ${{ if eq(parameters.msagent, 'true') }}:
      - name: USE_SCCACHE
        value: 0
    - ${{ if eq(parameters.msagent, 'false') }}:
      - name: USE_SCCACHE
        value: 1
    - ${{ if eq(parameters.package, 'Conda') }}:
      - group: peterjc_anaconda_token
      - name: PYTORCH_FINAL_PACKAGE_DIR
        value: '$(Build.Repository.LocalPath)\packaging\windows\output'
      
  strategy:
    maxParallel: 10
    matrix:
      ${{ if eq(parameters.spec, 'CPU') }}:
        PY3.5:
          DESIRED_PYTHON: 3.5
          CUDA_VERSION: cpu
        PY3.6:
          DESIRED_PYTHON: 3.6
          CUDA_VERSION: cpu
        PY3.7:
          DESIRED_PYTHON: 3.7
          CUDA_VERSION: cpu
      ${{ if ne(parameters.spec, 'CPU') }}:
59
60
61
62
63
64
65
66
67
        PY3.5_92:
          DESIRED_PYTHON: 3.5
          CUDA_VERSION: 92
        PY3.6_92:
          DESIRED_PYTHON: 3.6
          CUDA_VERSION: 92
        PY3.7_92:
          DESIRED_PYTHON: 3.7
          CUDA_VERSION: 92
peterjc123's avatar
peterjc123 committed
68
        PY3.5_101:
peterjc123's avatar
peterjc123 committed
69
          DESIRED_PYTHON: 3.5
peterjc123's avatar
peterjc123 committed
70
71
          CUDA_VERSION: 101
        PY3.6_101:
peterjc123's avatar
peterjc123 committed
72
          DESIRED_PYTHON: 3.6
peterjc123's avatar
peterjc123 committed
73
74
          CUDA_VERSION: 101
        PY3.7_101:
peterjc123's avatar
peterjc123 committed
75
          DESIRED_PYTHON: 3.7
peterjc123's avatar
peterjc123 committed
76
          CUDA_VERSION: 101
peterjc123's avatar
peterjc123 committed
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140

  pool:
    ${{ if eq(parameters.msagent, 'true') }}:
      vmImage: 'win1803'
    ${{ if eq(parameters.msagent, 'false') }}:
      name: 'release'

  steps:
  - checkout: self
    clean: true

  - template: setup_env_for_msagent.yml
    parameters:
      msagent: ${{ parameters.msagent }}

  # - ${{ if and(eq(parameters.override, 'true'),  eq(parameters.package, 'Wheels')) }}:
  #   - template: override_pytorch_version.yml

  - template: setup_nightly_variables.yml
    parameters:
      package: ${{ parameters.package }}

  - ${{ if eq(parameters.package, 'Wheels') }}:
    - template: build_wheels.yml
      parameters:
        msagent: ${{ parameters.msagent }}

  - ${{ if eq(parameters.package, 'Conda') }}:
    - template: build_conda.yml
      parameters:
        msagent: ${{ parameters.msagent }}

  - ${{ if or(eq(parameters.package, 'Wheels'), eq(parameters.package, 'Conda')) }}:
    - template: publish_test_results.yml
      parameters:
        msagent: ${{ parameters.msagent }}

  # If you want to upload binaries to S3 & Anaconda Cloud, please uncomment this section.
  - ${{ if and(eq(parameters.package, 'Wheels'), eq(parameters.spec, 'CPU')) }}:
    - template: upload_to_s3.yml
      parameters:
        cuVer: '$(CUDA_VERSION)'
        cudaVer: '$(CUDA_VERSION)'

  - ${{ if and(eq(parameters.package, 'Wheels'), ne(parameters.spec, 'CPU')) }}:
    - template: upload_to_s3.yml
      parameters:
        cuVer: 'cu$(CUDA_VERSION)'
        cudaVer: 'cuda$(CUDA_VERSION)'

  - ${{ if eq(parameters.package, 'Conda') }}:
    - template: upload_to_conda.yml
      parameters:
        user: $(peterjc_conda_username)
        pass: $(peterjc_conda_password)

  # If you want to upload binaries to Azure Git, please uncomment this section.
  # - ${{ if or(eq(parameters.package, 'Wheels'), eq(parameters.package, 'Conda')) }}:
  #   - template: publish_test_results.yml
  #     parameters:
  #       msagent: ${{ parameters.msagent }}
  #   - template: publish_packages.yml
  #     parameters:
  #       package: ${{ parameters.package }}