forked from scikit-learn/scikit-learn
-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathazure-pipelines.yml
More file actions
133 lines (126 loc) · 4.22 KB
/
Copy pathazure-pipelines.yml
File metadata and controls
133 lines (126 loc) · 4.22 KB
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
# Adapted from https://github.com/pandas-dev/pandas/blob/master/azure-pipelines.yml
schedules:
- cron: "30 2 * * *"
displayName: Run nightly build
branches:
include:
- main
always: true
jobs:
- job: git_commit
displayName: Get Git Commit
pool:
vmImage: ubuntu-24.04
steps:
- bash: python build_tools/azure/get_commit_message.py
name: commit
displayName: Get source version message
- job: linting
dependsOn: [git_commit]
condition: |
and(
succeeded(),
not(contains(dependencies['git_commit']['outputs']['commit.message'], '[lint skip]')),
not(contains(dependencies['git_commit']['outputs']['commit.message'], '[ci skip]'))
)
displayName: Linting
pool:
vmImage: ubuntu-24.04
steps:
- task: UsePythonVersion@0
inputs:
versionSpec: '3.12'
- bash: |
source build_tools/shared.sh
# Include pytest compatibility with mypy
pip install pytest $(get_dep ruff min) $(get_dep mypy min) cython-lint
displayName: Install linters
- bash: |
./build_tools/linting.sh
displayName: Run linters
- bash: |
pip install ninja meson scipy
python build_tools/check-meson-openmp-dependencies.py
displayName: Run Meson OpenMP checks
- template: build_tools/azure/posix.yml
parameters:
name: Linux_Nightly
vmImage: ubuntu-22.04
dependsOn: [git_commit, linting]
condition: |
and(
succeeded(),
not(contains(dependencies['git_commit']['outputs']['commit.message'], '[ci skip]')),
or(eq(variables['Build.Reason'], 'Schedule'),
contains(dependencies['git_commit']['outputs']['commit.message'], '[scipy-dev]'
)
)
)
matrix:
pylatest_pip_scipy_dev:
DISTRIB: 'conda-pip-scipy-dev'
LOCK_FILE: './build_tools/azure/pylatest_pip_scipy_dev_linux-64_conda.lock'
SKLEARN_WARNINGS_AS_ERRORS: '1'
CHECK_PYTEST_SOFT_DEPENDENCY: 'true'
- template: build_tools/azure/posix.yml
# CPython free-threaded build
parameters:
name: Linux_free_threaded
vmImage: ubuntu-22.04
dependsOn: [git_commit, linting]
condition: |
and(
succeeded(),
not(contains(dependencies['git_commit']['outputs']['commit.message'], '[ci skip]')),
or(eq(variables['Build.Reason'], 'Schedule'),
contains(dependencies['git_commit']['outputs']['commit.message'], '[free-threaded]'
)
)
)
matrix:
pylatest_free_threaded:
DISTRIB: 'conda-free-threaded'
LOCK_FILE: './build_tools/azure/pylatest_free_threaded_linux-64_conda.lock'
COVERAGE: 'false'
# Disable pytest-xdist to use multiple cores for stress-testing with pytest-run-parallel
PYTEST_XDIST_VERSION: 'none'
# Will run all the time regardless of linting outcome.
- template: build_tools/azure/posix.yml
parameters:
name: Linux_Runs
vmImage: ubuntu-22.04
dependsOn: [git_commit]
condition: |
and(
succeeded(),
not(contains(dependencies['git_commit']['outputs']['commit.message'], '[ci skip]'))
)
matrix:
pylatest_conda_forge_mkl:
DISTRIB: 'conda'
LOCK_FILE: './build_tools/azure/pylatest_conda_forge_mkl_linux-64_conda.lock'
COVERAGE: 'true'
SKLEARN_TESTS_GLOBAL_RANDOM_SEED: '42' # default global random seed
# Tests that require large downloads over the networks are skipped in CI.
# Here we make sure, that they are still run on a regular basis.
${{ if eq(variables['Build.Reason'], 'Schedule') }}:
SKLEARN_SKIP_NETWORK_TESTS: '0'
SCIPY_ARRAY_API: '1'
- template: build_tools/azure/posix-docker.yml
parameters:
name: Linux_Docker
vmImage: ubuntu-24.04
dependsOn: [linting, git_commit]
# Runs when dependencies succeeded or skipped
condition: |
and(
not(or(failed(), canceled())),
not(contains(dependencies['git_commit']['outputs']['commit.message'], '[ci skip]'))
)
matrix:
debian_32bit:
DOCKER_CONTAINER: 'i386/debian:trixie'
DISTRIB: 'debian-32'
COVERAGE: "true"
LOCK_FILE: './build_tools/azure/debian_32bit_lock.txt'
SKLEARN_TESTS_GLOBAL_RANDOM_SEED: '4' # non-default seed