@@ -211,8 +211,16 @@ jobs:
211211 # Things to exclude if not a full matrix run #
212212 # #############################################
213213 - is-full-run : false
214- os : windows-2022
215- cibuildwheel : " cp310"
214+ os : ubuntu-24.04
215+ cibuildwheel : " cp311"
216+
217+ - is-full-run : false
218+ os : ubuntu-24.04
219+ cibuildwheel : " cp312"
220+
221+ - is-full-run : false
222+ os : ubuntu-24.04
223+ cibuildwheel : " cp313"
216224
217225 - is-full-run : false
218226 os : windows-2022
@@ -222,10 +230,9 @@ jobs:
222230 os : windows-2022
223231 cibuildwheel : " cp312"
224232
225- # avoid unnecessary use of mac resources
226233 - is-full-run : false
227- os : macos-14
228- cibuildwheel : " cp310 "
234+ os : windows-2022
235+ cibuildwheel : " cp313 "
229236
230237 - is-full-run : false
231238 os : macos-14
@@ -235,6 +242,10 @@ jobs:
235242 os : macos-14
236243 cibuildwheel : " cp312"
237244
245+ - is-full-run : false
246+ os : macos-14
247+ cibuildwheel : " cp313"
248+
238249 runs-on : ${{ matrix.os }}
239250
240251 steps :
@@ -417,11 +428,17 @@ jobs:
417428 # #############################################
418429 # Things to exclude if not a full matrix run #
419430 # #############################################
420-
421- # Avoid extra resources for windows build
422431 - is-full-run : false
423- os : windows-2022
424- python-version : " 3.10"
432+ os : ubuntu-24.04
433+ python-version : " 3.11"
434+
435+ - is-full-run : false
436+ os : ubuntu-24.04
437+ python-version : " 3.12"
438+
439+ - is-full-run : false
440+ os : ubuntu-24.04
441+ python-version : " 3.13"
425442
426443 - is-full-run : false
427444 os : windows-2022
@@ -431,10 +448,9 @@ jobs:
431448 os : windows-2022
432449 python-version : " 3.12"
433450
434- # avoid unnecessary use of mac resources
435451 - is-full-run : false
436- os : macos-14
437- python-version : " 3.10 "
452+ os : windows-2022
453+ python-version : " 3.13 "
438454
439455 - is-full-run : false
440456 os : macos-14
@@ -444,6 +460,10 @@ jobs:
444460 os : macos-14
445461 python-version : " 3.12"
446462
463+ - is-full-run : false
464+ os : macos-14
465+ python-version : " 3.13"
466+
447467 runs-on : ${{ matrix.os }}
448468
449469 steps :
@@ -515,6 +535,106 @@ jobs:
515535 - name : Python Test Steps
516536 run : make test
517537
538+ # ###################################################################################################################
539+ # ..................................................................................................................#
540+ # ..|########|..|########|..../####\....|########|.............../####\...|########\..|########\....................#
541+ # ..|########|..|##|......../##/..\##\..|########|............./##/.\##\..|##|../##/..|##|../##/....................#
542+ # .....|##|.....|##|.........\##\..........|##|...............|##|........|##|./##/...|##|./##/.....................#
543+ # .....|##|.....|########|.....\##\........|##|...............|##|........|##||##/....|##||##/......................#
544+ # .....|##|.....|##|.............\##\......|##|...............|##|........|##|........|##|..........................#
545+ # .....|##|.....|##|........\##\../##/.....|##|................\##\./##/..|##|........|##|..........................#
546+ # .....|##|.....|########|...\####/........|##|.................\####/....|##|........|##|..........................#
547+ # ..................................................................................................................#
548+ # ...|########|...\##\..../##/...../#####\......./|\........./|\....|########\..|##|........|########|..../####\....#
549+ # ...|##|..........\##\../##/...../##/.\##\...../#|#\......./#|#\...|##|../##/..|##|........|##|......../##/..\##\..#
550+ # ...|##|...........\##\/##/...../##/...\##\...|##|\#\...../#/|##|..|##|./##/...|##|........|##|.........\##\.......#
551+ # ...|########|......|####|...../###########\..|##|.\#\.../#/.|##|..|##||##/....|##|........|########|.....\##\.....#
552+ # ...|##|.........../##/\##\....|##|.....|##|..|##|..\#\./#/..|##|..|##|........|##|........|##|.............\##\...#
553+ # ...|##|........../##/..\##\...|##|.....|##|..|##|...\#|#/...|##|..|##|........|########|..|##|........\##\./##/...#
554+ # ...|########|.../##/....\##\..|##|.....|##|..|##|....\|/....|##|..|##|........|########|..|########|...\####/.....#
555+ # .........................................................................................................#
556+ # #############################################################
557+ # Build / test C++ examples (05_cpp) #
558+ # #############################################################
559+ test_cpp_examples :
560+ needs :
561+ - initialize
562+ - build
563+
564+ strategy :
565+ matrix :
566+ os :
567+ - ubuntu-24.04
568+ - macos-14
569+ example :
570+ - 1_cpp_node
571+ - 2_cpp_node_with_struct
572+ - 3_cpp_adapter
573+ - 4_c_api_adapter
574+ - 5_c_api_adapter_rust
575+ python-version :
576+ - " 3.10"
577+
578+ runs-on : ${{ matrix.os }}
579+
580+ steps :
581+ - name : Checkout
582+ uses : actions/checkout@v6
583+ with :
584+ submodules : recursive
585+
586+ - name : Set up Python ${{ matrix.python-version }}
587+ uses : ./.github/actions/setup-python
588+ with :
589+ version : ' ${{ matrix.python-version }}'
590+ cibuildwheel : false
591+
592+ - name : Set up Caches
593+ uses : ./.github/actions/setup-caches
594+
595+ - name : Install python dependencies
596+ run : make requirements
597+
598+ - name : Download wheel
599+ uses : actions/download-artifact@v7
600+ with :
601+ name : csp-dist-${{ runner.os }}-${{ runner.arch }}-${{ matrix.python-version }}
602+
603+ # #######
604+ # Linux
605+ - name : Install wheel (Linux)
606+ run : |
607+ python -m pip install -U *manylinux*.whl
608+ if : ${{ runner.os == 'Linux' }}
609+
610+ - name : Install build tools (Linux)
611+ run : sudo apt-get install -y cmake build-essential
612+ if : ${{ runner.os == 'Linux' }}
613+
614+ # #######
615+ # MacOS
616+ - name : Install wheel (OSX arm)
617+ run : |
618+ python -m pip install -U *arm64*.whl
619+ if : ${{ runner.os == 'macOS' && runner.arch == 'ARM64' }}
620+
621+ - name : Install wheel (OSX x86)
622+ run : |
623+ python -m pip install -U *x86*.whl
624+ if : ${{ runner.os == 'macOS' && runner.arch == 'X64' }}
625+
626+ # #########
627+ # Steps for Rust depend C API Rust Example (5_c_api_adapter_rust)
628+ - name : Setup Rust
629+ uses : ./.github/actions/setup-rust
630+ if : ${{ matrix.example == '5_c_api_adapter_rust' }}
631+
632+ - name : Build example ${{ matrix.example }} and run tests
633+ run : |
634+ cd examples/05_cpp/${{ matrix.example }}
635+ hatch-build --hooks-only -t wheel
636+ python -m pytest -vvv .
637+
518638 # ###############################################################
519639 # ..............................................................#
520640 # ..|########|..|########|..../####\....|########|..............#
@@ -731,6 +851,7 @@ jobs:
731851 - test
732852 - test_sdist
733853 - test_dependencies
854+ - test_cpp_examples
734855
735856 if : startsWith(github.ref, 'refs/tags/v')
736857 runs-on : ubuntu-24.04
0 commit comments