70
70
- ' 3.9'
71
71
- ' 3.10'
72
72
- ' 3.11'
73
- - ' 3.12-dev '
73
+ - ' 3.12'
74
74
- ' pypy3.7'
75
75
- ' pypy3.8'
76
76
- ' pypy3.9'
@@ -389,7 +389,7 @@ jobs:
389
389
interpreter : 3.11 3.12
390
390
- os : macos
391
391
target : aarch64
392
- interpreter : 3.7 3.8 3.9 3.10 3.11 3.12 pypy3.8 pypy3.9 pypy3.10
392
+ interpreter : 3.7 3.8 3.9 pypy3.8 pypy3.9 pypy3.10
393
393
- os : ubuntu
394
394
platform : linux
395
395
target : i686
@@ -465,33 +465,33 @@ jobs:
465
465
path : dist
466
466
467
467
build-pgo :
468
- name : build pgo-optimized on ${{ matrix.platform || matrix. os }} ( ${{ matrix.interpreter}} - ${{ matrix.target }} - ${{ matrix.manylinux || 'auto' }})
468
+ name : build pgo-optimized on ${{ matrix.os }} / ${{ matrix.interpreter }}
469
469
# only run on push to main and on release
470
470
if : startsWith(github.ref, 'refs/tags/') || github.ref == 'refs/heads/main' || contains(github.event.pull_request.labels.*.name, 'Full Build')
471
471
strategy :
472
472
fail-fast : false
473
473
matrix :
474
- os : [ubuntu, windows]
475
- target : [x86_64]
476
- manylinux : [auto]
477
- interpreter : ["3.7", "3.8", "3.9", "3.10", "3.11", "3.12-dev", "pypy3.7", "pypy3.8", "pypy3.9", "pypy3.10"]
474
+ os : [ubuntu-latest, windows-latest, macos-latest-xlarge]
475
+ interpreter : ['3.7', '3.8', '3.9', '3.10', '3.11', '3.12']
478
476
include :
479
- - os : ubuntu
480
- platform : linux
481
- - os : windows
477
+ - os : windows-latest
482
478
ls : dir
483
- - interpreter : 3.12-dev
484
- maturin-interpreter : " 3.12"
485
-
486
- runs-on : ${{ matrix.os }}-latest
479
+ exclude :
480
+ - os : macos-latest-xlarge
481
+ interpreter : ' 3.7'
482
+ - os : macos-latest-xlarge
483
+ interpreter : ' 3.8'
484
+ - os : macos-latest-xlarge
485
+ interpreter : ' 3.9'
486
+
487
+ runs-on : ${{ matrix.os }}
487
488
steps :
488
489
- uses : actions/checkout@v4
489
490
490
491
- name : set up python
491
492
uses : actions/setup-python@v4
492
493
with :
493
494
python-version : ${{ matrix.interpreter }}
494
- architecture : ${{ matrix.python-architecture || 'x64' }}
495
495
496
496
- name : install rust stable
497
497
id : rust-toolchain
@@ -504,15 +504,15 @@ jobs:
504
504
# generate self-schema now, so we don't have to do so inside docker in maturin build
505
505
- run : python generate_self_schema.py
506
506
507
+ - run : rustc --version --verbose
508
+
507
509
- name : build initial wheel
508
510
uses : PyO3/maturin-action@v1
509
511
with :
510
- target : ${{ matrix.target }}
511
- manylinux : ${{ matrix.manylinux || 'auto' }}
512
512
args : >
513
513
--release
514
514
--out pgo-wheel
515
- --interpreter ${{ matrix.maturin-interpreter || matrix. interpreter }}
515
+ --interpreter ${{ matrix.interpreter }}
516
516
rust-toolchain : stable
517
517
docker-options : -e CI
518
518
env :
@@ -536,12 +536,10 @@ jobs:
536
536
- name : build pgo-optimized wheel
537
537
uses : PyO3/maturin-action@v1
538
538
with :
539
- target : ${{ matrix.target }}
540
- manylinux : ${{ matrix.manylinux || 'auto' }}
541
539
args : >
542
540
--release
543
541
--out dist
544
- --interpreter ${{ matrix.maturin-interpreter || matrix. interpreter }}
542
+ --interpreter ${{ matrix.interpreter }}
545
543
rust-toolchain : stable
546
544
docker-options : -e CI
547
545
env :
@@ -551,7 +549,7 @@ jobs:
551
549
552
550
- uses : actions/upload-artifact@v3
553
551
with :
554
- name : pypi_files
552
+ name : pypi_files_pgo
555
553
path : dist
556
554
557
555
inspect-pypi-assets :
@@ -567,7 +565,19 @@ jobs:
567
565
name : pypi_files
568
566
path : dist
569
567
570
- - name : list dist files
568
+ - name : list dist files before PGO builds
569
+ run : |
570
+ ls -lh dist/
571
+ ls -l dist/
572
+ echo "`ls dist | wc -l` files"
573
+
574
+ - name : get PGO dist artifacts (comes after "get dist artifacts" to so these files override the non-PGO builds)
575
+ uses : actions/download-artifact@v3
576
+ with :
577
+ name : pypi_files_pgo
578
+ path : dist
579
+
580
+ - name : list dist files with PGO builds
571
581
run : |
572
582
ls -lh dist/
573
583
ls -l dist/
@@ -607,6 +617,12 @@ jobs:
607
617
name : pypi_files
608
618
path : dist
609
619
620
+ - name : get PGO dist artifacts (comes after "get dist artifacts" to so these files override the non-PGO builds)
621
+ uses : actions/download-artifact@v3
622
+ with :
623
+ name : pypi_files_pgo
624
+ path : dist
625
+
610
626
611
627
name : install & test
612
628
with :
@@ -659,6 +675,12 @@ jobs:
659
675
name : pypi_files
660
676
path : dist
661
677
678
+ - name : get PGO dist artifacts (comes after "get dist artifacts" to so these files override the non-PGO builds)
679
+ uses : actions/download-artifact@v3
680
+ with :
681
+ name : pypi_files_pgo
682
+ path : dist
683
+
662
684
- run : pip install typing-extensions
663
685
- run : pip install -r tests/requirements.txt
664
686
- run : pip install pydantic-core --no-index --no-deps --find-links dist --force-reinstall
@@ -688,6 +710,12 @@ jobs:
688
710
name : pypi_files
689
711
path : dist
690
712
713
+ - name : get PGO dist artifacts (comes after "get dist artifacts" to so these files override the non-PGO builds)
714
+ uses : actions/download-artifact@v3
715
+ with :
716
+ name : pypi_files_pgo
717
+ path : dist
718
+
691
719
- run : twine check --strict dist/*
692
720
693
721
- name : upload to pypi
0 commit comments