17
17
- setup.py
18
18
- versioneer.py
19
19
push :
20
+ schedule :
21
+ - cron : " 30 2 * * WED"
22
+ - cron : " 30 2 * * THU"
20
23
concurrency :
21
24
# Cancel other jobs in the same branch. We don't care whether CI passes
22
25
# on old commits.
26
29
MODIN_GITHUB_CI : true
27
30
28
31
jobs :
32
+ python-filter :
33
+ runs-on : ubuntu-latest
34
+ outputs :
35
+ python-version : ${{ steps.choose.outputs.python-version }}
36
+ steps :
37
+ - id : choose
38
+ run : |
39
+ if [[ "${{ github.event.schedule }}" = "30 2 * * WED" ]]
40
+ then
41
+ echo "python-version=3.10" >> "$GITHUB_OUTPUT"
42
+ elif [[ "${{ github.event.schedule }}" = "30 2 * * THU" ]]
43
+ then
44
+ echo "python-version=3.11" >> "$GITHUB_OUTPUT"
45
+ else
46
+ echo "python-version=3.9" >> "$GITHUB_OUTPUT"
47
+ fi
48
+
29
49
lint-mypy :
50
+ needs : [python-filter]
30
51
name : lint (mypy)
31
52
runs-on : ubuntu-latest
32
53
steps :
33
54
- uses : actions/checkout@v4
34
55
- uses : ./.github/actions/python-only
56
+ with :
57
+ python-version : ${{ needs.python-filter.outputs.python-version }}
35
58
- run : pip install -r requirements-dev.txt
36
59
- run : mypy --config-file mypy.ini
37
60
38
61
lint-flake8 :
62
+ needs : [python-filter]
39
63
name : lint (flake8)
40
64
runs-on : ubuntu-latest
41
65
steps :
42
66
- uses : actions/checkout@v4
43
67
- uses : ./.github/actions/python-only
68
+ with :
69
+ python-version : ${{ needs.python-filter.outputs.python-version }}
44
70
# NOTE: If you are changing the set of packages installed here, make sure that
45
71
# the dev requirements match them.
46
72
- run : pip install flake8 flake8-print flake8-no-implicit-concat
49
75
- run : flake8 modin/ asv_bench/benchmarks scripts/doc_checker.py
50
76
51
77
test-api-and-no-engine :
78
+ needs : [python-filter]
52
79
name : Test API, headers and no-engine mode
53
80
runs-on : ubuntu-latest
54
81
defaults :
@@ -59,14 +86,15 @@ jobs:
59
86
- uses : ./.github/actions/mamba-env
60
87
with :
61
88
environment-file : requirements/requirements-no-engine.yml
89
+ python-version : ${{ needs.python-filter.outputs.python-version }}
62
90
- run : python -m pytest modin/tests/pandas/test_api.py
63
91
- run : python -m pytest modin/tests/test_executions_api.py
64
92
- run : python -m pytest modin/tests/test_headers.py
65
93
- run : python -m pytest modin/tests/core/test_dispatcher.py::test_add_option
66
94
- uses : ./.github/actions/upload-coverage
67
95
68
96
test-clean-install :
69
- needs : [lint-flake8]
97
+ needs : [lint-flake8, python-filter ]
70
98
strategy :
71
99
matrix :
72
100
os :
80
108
steps :
81
109
- uses : actions/checkout@v4
82
110
- uses : ./.github/actions/python-only
111
+ with :
112
+ python-version : ${{ needs.python-filter.outputs.python-version }}
83
113
- run : python -m pip install -e ".[all]"
84
114
- name : Ensure Ray and Dask engines start up
85
115
run : |
94
124
if : matrix.os == 'ubuntu'
95
125
96
126
test-internals :
97
- needs : [lint-flake8]
127
+ needs : [lint-flake8, python-filter ]
98
128
runs-on : ubuntu-latest
99
129
defaults :
100
130
run :
@@ -105,6 +135,7 @@ jobs:
105
135
- uses : ./.github/actions/mamba-env
106
136
with :
107
137
environment-file : environment-dev.yml
138
+ python-version : ${{ needs.python-filter.outputs.python-version }}
108
139
- name : Internals tests
109
140
run : python -m pytest modin/tests/core/test_dispatcher.py
110
141
- run : python -m pytest modin/tests/config
@@ -120,7 +151,7 @@ jobs:
120
151
- uses : ./.github/actions/upload-coverage
121
152
122
153
test-defaults :
123
- needs : [lint-flake8]
154
+ needs : [lint-flake8, python-filter ]
124
155
runs-on : ubuntu-latest
125
156
defaults :
126
157
run :
@@ -130,12 +161,13 @@ jobs:
130
161
execution : [BaseOnPython]
131
162
env :
132
163
MODIN_TEST_DATASET_SIZE : " small"
133
- name : Test ${{ matrix.execution }} execution, Python 3.9
164
+ name : Test ${{ matrix.execution }} execution, Python ${{ needs.python-filter.outputs.python-version }}"
134
165
steps :
135
166
- uses : actions/checkout@v4
136
167
- uses : ./.github/actions/mamba-env
137
168
with :
138
169
environment-file : environment-dev.yml
170
+ python-version : ${{ needs.python-filter.outputs.python-version }}
139
171
- name : Install HDF5
140
172
run : sudo apt update && sudo apt install -y libhdf5-dev
141
173
- name : xgboost tests
@@ -240,15 +272,15 @@ jobs:
240
272
"${{ steps.filter.outputs.ray }}" "${{ steps.filter.outputs.dask }}" >> $GITHUB_OUTPUT
241
273
242
274
test-all-unidist :
243
- needs : [lint-flake8, execution-filter]
275
+ needs : [lint-flake8, execution-filter, python-filter ]
244
276
if : github.event_name == 'push' || needs.execution-filter.outputs.unidist == 'true'
245
277
runs-on : ubuntu-latest
246
278
defaults :
247
279
run :
248
280
shell : bash -l {0}
249
281
strategy :
250
282
matrix :
251
- python-version : ["3.9" ]
283
+ python-version : [ "${{ needs.python-filter.outputs.python-version }}" ]
252
284
unidist-backend : ["mpi"]
253
285
env :
254
286
MODIN_ENGINE : " Unidist"
@@ -314,13 +346,13 @@ jobs:
314
346
- uses : ./.github/actions/upload-coverage
315
347
316
348
test-all :
317
- needs : [lint-flake8, execution-filter]
349
+ needs : [lint-flake8, execution-filter, python-filter ]
318
350
strategy :
319
351
matrix :
320
352
os :
321
353
- ubuntu
322
354
- windows
323
- python-version : ["3.9" ]
355
+ python-version : [ "${{ needs.python-filter.outputs.python-version }}" ]
324
356
engine : ${{ fromJSON( github.event_name == 'push' && '["python", "ray", "dask"]' || needs.execution-filter.outputs.engines ) }}
325
357
test_task :
326
358
- group_1
@@ -446,14 +478,14 @@ jobs:
446
478
if : matrix.os == 'windows'
447
479
448
480
test-sanity :
449
- needs : [lint-flake8, execution-filter]
481
+ needs : [lint-flake8, execution-filter, python-filter ]
450
482
if : github.event_name == 'pull_request'
451
483
strategy :
452
484
matrix :
453
485
os :
454
486
- ubuntu
455
487
- windows
456
- python-version : ["3.9" ]
488
+ python-version : [ "${{ needs.python-filter.outputs.python-version }}" ]
457
489
execution :
458
490
- name : ray
459
491
shell-ex : " python -m pytest"
@@ -579,7 +611,7 @@ jobs:
579
611
- uses : ./.github/actions/upload-coverage
580
612
581
613
test-experimental :
582
- needs : [lint-flake8]
614
+ needs : [lint-flake8, python-filter ]
583
615
runs-on : ubuntu-latest
584
616
defaults :
585
617
run :
@@ -601,6 +633,7 @@ jobs:
601
633
- uses : ./.github/actions/mamba-env
602
634
with :
603
635
environment-file : environment-dev.yml
636
+ python-version : ${{ needs.python-filter.outputs.python-version }}
604
637
- name : Install HDF5
605
638
run : sudo apt update && sudo apt install -y libhdf5-dev
606
639
- run : python -m pytest -n 2 modin/tests/pandas/dataframe/test_map_metadata.py
@@ -610,14 +643,14 @@ jobs:
610
643
- uses : ./.github/actions/upload-coverage
611
644
612
645
test-spreadsheet :
613
- needs : [lint-flake8]
646
+ needs : [lint-flake8, python-filter ]
614
647
runs-on : ubuntu-latest
615
648
defaults :
616
649
run :
617
650
shell : bash -l {0}
618
651
strategy :
619
652
matrix :
620
- python-version : ["3.9" ]
653
+ python-version : [ "${{ needs.python-filter.outputs.python-version }}" ]
621
654
engine : ["ray", "dask"]
622
655
env :
623
656
MODIN_EXPERIMENTAL : " True"
@@ -647,7 +680,7 @@ jobs:
647
680
delete-merged : true
648
681
649
682
upload-coverage :
650
- needs : [merge-coverage-artifacts]
683
+ needs : [merge-coverage-artifacts, python-filter ]
651
684
if : always() # we need to run it regardless of some job being skipped, like in PR
652
685
runs-on : ubuntu-latest
653
686
defaults :
@@ -656,6 +689,8 @@ jobs:
656
689
steps :
657
690
- uses : actions/checkout@v4
658
691
- uses : ./.github/actions/python-only
692
+ with :
693
+ python-version : ${{ needs.python-filter.outputs.python-version }}
659
694
- name : Download coverage data
660
695
uses : actions/download-artifact@v4
661
696
with :
0 commit comments