11name : Build Status
22
3+ env :
4+ # Run full CI Monday and Thursday at 3:25am EST (08:25 UTC)
5+ # Note: do not run scheduled jobs on the hour exactly, per:
6+ # https://docs.github.com/en/actions/writing-workflows/choosing-when-your-workflow-runs/events-that-trigger-workflows#schedule
7+ # GitHub Actions schedules can sometimes delay by up to 15 minutes due to platform load
8+ FULL_CI_SCHEDULE : ' 25 8 * * 1,4'
9+
310on :
411 push :
512 branches :
2633 required : false
2734 type : boolean
2835 default : false
36+ schedule :
37+ - cron : ' 25 8 * * 1,4'
2938
3039concurrency :
3140 group : ${{ github.workflow }}-${{ github.head_ref || github.run_id }}
@@ -56,11 +65,11 @@ jobs:
5665 # github.event.head_commit.message otherwise on pull
5766 # requests)
5867 initialize :
59- runs-on : ubuntu-22 .04
68+ runs-on : ubuntu-24 .04
6069
6170 outputs :
6271 COMMIT_MESSAGE : ${{ steps.setup.outputs.COMMIT_MSG }}
63- FULL_RUN : ${{ steps.setuppush.outputs.FULL_RUN || steps.setuppr.outputs.FULL_RUN || steps.setupmanual.outputs.FULL_RUN }}
72+ FULL_RUN : ${{ steps.setuppush.outputs.FULL_RUN || steps.setuppr.outputs.FULL_RUN || steps.setupmanual.outputs.FULL_RUN || steps.setupschedule.outputs.FULL_RUN }}
6473
6574 steps :
6675 - name : Checkout
@@ -109,6 +118,17 @@ jobs:
109118 env :
110119 FULL_RUN : ${{ github.event.inputs.ci-full }}
111120 if : ${{ github.event_name == 'workflow_dispatch' }}
121+
122+ - name : Display and Setup Build Args (Schedule)
123+ id : setupschedule
124+ run : |
125+ echo "Commit Message: $COMMIT_MSG"
126+ echo "Full Run: $FULL_RUN"
127+ echo "COMMIT_MSG=$COMMIT_MSG" >> $GITHUB_OUTPUT
128+ echo "FULL_RUN=$FULL_RUN" >> $GITHUB_OUTPUT
129+ env :
130+ FULL_RUN : ${{ github.event.schedule == env.FULL_CI_SCHEDULE }}
131+ if : ${{ github.event_name == 'schedule' }}
112132
113133 # #######################################################
114134 # ......................................................#
@@ -130,7 +150,7 @@ jobs:
130150 strategy :
131151 matrix :
132152 os :
133- - ubuntu-22 .04
153+ - ubuntu-24 .04
134154 python-version :
135155 - 3.9
136156
@@ -173,18 +193,16 @@ jobs:
173193 strategy :
174194 matrix :
175195 os :
176- - ubuntu-22 .04 # https://github.com/actions/runner-images/blob/main/images/ubuntu/Ubuntu2204 -Readme.md
177- - macos-12 # https://github.com/actions/runner-images/blob/main/images/macos/macos-12 -Readme.md
196+ - ubuntu-24 .04 # https://github.com/actions/runner-images/blob/main/images/ubuntu/Ubuntu2404 -Readme.md
197+ - macos-13 # https://github.com/actions/runner-images/blob/main/images/macos/macos-13 -Readme.md
178198 - macos-14 # https://github.com/actions/runner-images/blob/main/images/macos/macos-14-arm64-Readme.md
179199 - windows-2019 # https://github.com/actions/runner-images/blob/main/images/windows/Windows2019-Readme.md
180200 python-version :
181- - " 3.8"
182201 - " 3.9"
183202 - " 3.10"
184203 - " 3.11"
185204 - " 3.12"
186205 cibuildwheel :
187- - " cp38"
188206 - " cp39"
189207 - " cp310"
190208 - " cp311"
@@ -197,40 +215,24 @@ jobs:
197215 # ###########################
198216 # Skip when cibuildwheel != python version
199217 # to avoid duplication
200- - python-version : " 3.8"
201- cibuildwheel : " cp39"
202- - python-version : " 3.8"
203- cibuildwheel : " cp310"
204- - python-version : " 3.8"
205- cibuildwheel : " cp311"
206- - python-version : " 3.8"
207- cibuildwheel : " cp312"
208- - python-version : " 3.9"
209- cibuildwheel : " cp38"
210218 - python-version : " 3.9"
211219 cibuildwheel : " cp310"
212220 - python-version : " 3.9"
213221 cibuildwheel : " cp311"
214222 - python-version : " 3.9"
215223 cibuildwheel : " cp312"
216- - python-version : " 3.10"
217- cibuildwheel : " cp38"
218224 - python-version : " 3.10"
219225 cibuildwheel : " cp39"
220226 - python-version : " 3.10"
221227 cibuildwheel : " cp311"
222228 - python-version : " 3.10"
223229 cibuildwheel : " cp312"
224- - python-version : " 3.11"
225- cibuildwheel : " cp38"
226230 - python-version : " 3.11"
227231 cibuildwheel : " cp39"
228232 - python-version : " 3.11"
229233 cibuildwheel : " cp310"
230234 - python-version : " 3.11"
231235 cibuildwheel : " cp312"
232- - python-version : " 3.12"
233- cibuildwheel : " cp38"
234236 - python-version : " 3.12"
235237 cibuildwheel : " cp39"
236238 - python-version : " 3.12"
@@ -243,16 +245,10 @@ jobs:
243245 # Things to exclude if not a full matrix run #
244246 # #############################################
245247 # mac arm builds support py3.10+
246- - os : macos-14
247- python-version : " 3.8"
248248 - os : macos-14
249249 python-version : " 3.9"
250250
251251 # Avoid extra resources for windows build
252- - is-full-run : false
253- os : windows-2019
254- python-version : " 3.8"
255-
256252 - is-full-run : false
257253 os : windows-2019
258254 python-version : " 3.9"
@@ -267,11 +263,7 @@ jobs:
267263
268264 # avoid unnecessary use of mac resources
269265 - is-full-run : false
270- os : macos-12
271-
272- - is-full-run : false
273- os : macos-14
274- python-version : " 3.8"
266+ os : macos-13
275267
276268 - is-full-run : false
277269 os : macos-14
@@ -310,7 +302,7 @@ jobs:
310302 run : make dist-py-cibw
311303 env :
312304 CIBW_BUILD : " ${{ matrix.cibuildwheel }}-manylinux*"
313- CIBW_ENVIRONMENT_LINUX : CSP_MANYLINUX="ON" CCACHE_DIR="/host/home/runner/work/csp/csp/.ccache" VCPKG_DEFAULT_BINARY_CACHE="/host${{ env.VCPKG_DEFAULT_BINARY_CACHE }}" VCPKG_DOWNLOADS="/host${{ env.VCPKG_DOWNLOADS }}"
305+ CIBW_ENVIRONMENT_LINUX : ACLOCAL_PATH="/usr/share/aclocal" CSP_MANYLINUX="ON" CCACHE_DIR="/host/home/runner/work/csp/csp/.ccache" VCPKG_DEFAULT_BINARY_CACHE="/host${{ env.VCPKG_DEFAULT_BINARY_CACHE }}" VCPKG_DOWNLOADS="/host${{ env.VCPKG_DOWNLOADS }}"
314306 CIBW_BUILD_VERBOSITY : 3
315307 if : ${{ runner.os == 'Linux' }}
316308
@@ -323,7 +315,7 @@ jobs:
323315 CIBW_ENVIRONMENT_MACOS : CCACHE_DIR="/Users/runner/work/csp/csp/.ccache" VCPKG_DEFAULT_BINARY_CACHE="${{ env.VCPKG_DEFAULT_BINARY_CACHE }}" VCPKG_DOWNLOADS="${{ env.VCPKG_DOWNLOADS }}"
324316 CIBW_ARCHS_MACOS : x86_64
325317 CIBW_BUILD_VERBOSITY : 3
326- if : ${{ matrix.os == 'macos-12 ' }}
318+ if : ${{ matrix.os == 'macos-13 ' }}
327319
328320 - name : Python Build Steps (Macos arm)
329321 run : make dist-py-cibw
@@ -385,7 +377,7 @@ jobs:
385377 strategy :
386378 matrix :
387379 os :
388- - ubuntu-22 .04
380+ - ubuntu-24 .04
389381 python-version :
390382 - 3.9
391383
@@ -438,12 +430,11 @@ jobs:
438430 strategy :
439431 matrix :
440432 os :
441- - ubuntu-22 .04
442- - macos-12
433+ - ubuntu-24 .04
434+ - macos-13
443435 - macos-14
444436 - windows-2019
445437 python-version :
446- - 3.8
447438 - 3.9
448439 - " 3.10"
449440 - 3.11
@@ -455,16 +446,10 @@ jobs:
455446 # Things to exclude if not a full matrix run #
456447 # #############################################
457448 # mac arm builds support py3.10+
458- - os : macos-14
459- python-version : " 3.8"
460449 - os : macos-14
461450 python-version : " 3.9"
462451
463452 # Avoid extra resources for windows build
464- - is-full-run : false
465- os : windows-2019
466- python-version : " 3.8"
467-
468453 - is-full-run : false
469454 os : windows-2019
470455 python-version : " 3.9"
@@ -479,11 +464,7 @@ jobs:
479464
480465 # avoid unnecessary use of mac resources
481466 - is-full-run : false
482- os : macos-12
483-
484- - is-full-run : false
485- os : macos-14
486- python-version : " 3.8"
467+ os : macos-13
487468
488469 - is-full-run : false
489470 os : macos-14
@@ -592,7 +573,7 @@ jobs:
592573 strategy :
593574 matrix :
594575 os :
595- - ubuntu-22 .04
576+ - ubuntu-24 .04
596577 python-version :
597578 - 3.9
598579
@@ -616,6 +597,9 @@ jobs:
616597
617598 - name : Install python dependencies
618599 run : make requirements
600+
601+ - name : Install requirements
602+ run : sudo make dependencies-debian
619603
620604 - uses : actions/download-artifact@v4
621605 with :
@@ -670,9 +654,9 @@ jobs:
670654 python-version :
671655 - 3.9
672656 package :
673- - " sqlalchemy>=2"
674657 - " sqlalchemy<2"
675- - " numpy==1.19.5"
658+ - " numpy==1.22.4" # Min supported version of pandas 2.2
659+ - " perspective-python<3"
676660
677661 runs-on : ${{ matrix.os }}
678662
@@ -709,11 +693,15 @@ jobs:
709693
710694 - name : Python Test Steps
711695 run : make test TEST_ARGS="-k TestDBReader"
712- if : ${{ contains( 'sqlalchemy', matrix.package )}}
696+ if : ${{ contains( matrix.package, 'sqlalchemy' )}}
713697
714698 - name : Python Test Steps
715699 run : make test
716- if : ${{ contains( 'numpy', matrix.package )}}
700+ if : ${{ contains( matrix.package, 'numpy' )}}
701+
702+ - name : Python Test Steps
703+ run : make test TEST_ARGS="-k Perspective"
704+ if : ${{ contains( matrix.package, 'perspective' )}}
717705
718706 # ##########################################################################################################
719707 # .........................................................................................................#
@@ -765,7 +753,7 @@ jobs:
765753 - test_dependencies
766754
767755 if : startsWith(github.ref, 'refs/tags/v')
768- runs-on : ubuntu-22 .04
756+ runs-on : ubuntu-24 .04
769757
770758 steps :
771759 - name : Download wheels and sdist
0 commit comments