aboutsummaryrefslogtreecommitdiff
path: root/azure-pipelines.yml
blob: cc6cba8b4765aa710e3996ca539fb408462003bb (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
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
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
# intel oneapi installation is based on the examples at
# https://github.com/oneapi-src/oneapi-ci
#
# and are copyrighted:
#
# SPDX-FileCopyrightText: 2020 Intel Corporation
# SPDX-License-Identifier: MIT
#
# The rest of this file contains the standard Meson project copyright:
#
# SPDX-License-Identifer: Apache-2.0
# Copyright 2022 The Meson development team


name: $(BuildID)

trigger:
  branches:
    include:
    - 'master'
    # Release branches
    - '0.*'
  paths:
    include:
      - 'mesonbuild'
      - 'test cases'
      - 'unittests'
      - 'azure-pipelines.yml'
      - 'ci/azure-steps.yml'
      - 'run_project_tests.py'
      - 'run_tests.py'
      - 'run_unittests.py'
pr:
  autoCancel: true
  branches:
    include:
    - '*'
  paths:
    include:
      - 'mesonbuild'
      - 'test cases'
      - 'unittests'
      - 'azure-pipelines.yml'
      - 'ci/azure-steps.yml'
      - 'run_project_tests.py'
      - 'run_tests.py'
      - 'run_unittests.py'

variables:
  CI: 1
  SOURCE_VERSION: $(Build.SourceVersion)
  WINDOWS_HPCKIT_URL: https://registrationcenter-download.intel.com/akdlm/IRC_NAS/18680/w_HPCKit_p_2022.2.0.173_offline.exe
  WINDOWS_FORTRAN_COMPONENTS: intel.oneapi.win.ifort-compiler

jobs:

- job: vs2017
  timeoutInMinutes: 120
  pool:
    vmImage: VS2017-Win2016

  strategy:
    matrix:
        vc2017x86ninja:
          arch: x86
          compiler: msvc2017
          backend: ninja
          MESON_RSP_THRESHOLD: 0
          # "Compiler ifort can not compile programs"
          ifort: false
        vc2017x64vs:
          arch: x64
          compiler: msvc2017
          backend: vs2017
          # this causes tons of C projects to error with:
          # "The syntax of the command is incorrect"
          ifort: false
        clangclx64ninja:
          arch: x64
          compiler: clang-cl
          backend: ninja
          ifort: true

  steps:
  - task: Cache@2
    inputs:
      path: C:\Program Files (x86)\Intel\oneAPI
      key: '"install" | "$(WINDOWS_HPCKIT_URL)" | "$(WINDOWS_FORTRAN_COMPONENTS)" | "compiler" | ci/intel-scripts/cache_exclude_windows.sh'
      cacheHitVar: CACHE_RESTORED
    condition: eq(variables.ifort, 'true')
  - script: ci/intel-scripts/install_windows.bat $(WINDOWS_HPCKIT_URL) $(WINDOWS_FORTRAN_COMPONENTS)
    displayName: install ifort
    condition: and(ne(variables.CACHE_RESTORED, 'true'), eq(variables.ifort, 'true'))
  - bash: ci/intel-scripts/cache_exclude_windows.sh
    displayName: exclude unused files from cache
    condition: and(ne(variables.CACHE_RESTORED, 'true'), eq(variables.ifort, 'true'))
  - task: UsePythonVersion@0
    inputs:
      versionSpec: '3.7'
      addToPath: true
      architecture: 'x64'
  - task: BatchScript@1
    displayName: insert ifort into environment
    inputs:
      filename: ci/intel-scripts/activate_windows.bat
      arguments: vs2019
      modifyEnvironment: True
    condition: eq(variables.ifort, 'true')
  - task: PowerShell@2
    inputs:
      targetType: 'filePath'
      filePath: .\ci\run.ps1
    env:
      MESON_CI_JOBNAME: azure-$(System.JobName)

- job: vs2019
  timeoutInMinutes: 120
  pool:
    vmImage: windows-2019

  strategy:
    matrix:
        vc2019x64ninja:
          arch: x64
          compiler: msvc2019
          backend: ninja
          ifort: true
        vc2019x64vs:
          arch: x64
          compiler: msvc2019
          backend: vs2019
          # mysteriously, several tests fail because vs cannot find
          # executables such as cmd.exe ???
          ifort: false
        vc2019arm64ninjacross:
          arch: arm64
          compiler: msvc2019
          backend: ninja
          extraargs: --cross arm64cl.txt --cross-only
          # ifort doesn't support arm64
          ifort: false

  steps:
  - task: Cache@2
    inputs:
      path: C:\Program Files (x86)\Intel\oneAPI
      key: '"install" | "$(WINDOWS_HPCKIT_URL)" | "$(WINDOWS_FORTRAN_COMPONENTS)" | "compiler" | ci/intel-scripts/cache_exclude_windows.sh'
      cacheHitVar: CACHE_RESTORED
    condition: eq(variables.ifort, 'true')
  - script: ci/intel-scripts/install_windows.bat $(WINDOWS_HPCKIT_URL) $(WINDOWS_FORTRAN_COMPONENTS)
    displayName: install ifort
    condition: and(ne(variables.CACHE_RESTORED, 'true'), eq(variables.ifort, 'true'))
  - bash: ci/intel-scripts/cache_exclude_windows.sh
    displayName: exclude unused files from cache
    condition: and(ne(variables.CACHE_RESTORED, 'true'), eq(variables.ifort, 'true'))
  - task: UsePythonVersion@0
    inputs:
      versionSpec: '3.7'
      addToPath: true
      architecture: 'x64'
  - task: BatchScript@1
    displayName: insert ifort into environment
    inputs:
      filename: ci/intel-scripts/activate_windows.bat
      arguments: vs2019
      modifyEnvironment: True
    condition: eq(variables.ifort, 'true')
  - task: PowerShell@2
    inputs:
      targetType: 'filePath'
      filePath: .\ci\run.ps1
    env:
      MESON_CI_JOBNAME: azure-$(System.JobName)