44 push :
55 pull_request :
66
7+ permissions : {}
8+
79jobs :
810 checks :
911 runs-on : ubuntu-latest
1012 steps :
1113 - name : Checkout working copy
12- uses : actions/checkout@v4
14+ uses : actions/checkout@8e8c483db84b4bee98b60c0593521ed34d9990e8 # 6.0.1
1315 with :
1416 submodules : true
1517 fetch-depth : 0
1618 persist-credentials : false
1719 - name : ruff check
18- uses : chartboost/ruff-action@v1
20+ uses : astral-sh/ruff-action@57714a7c8a2e59f32539362ba31877a1957dded1 # 3.5.1
21+ with :
22+ version : " latest"
1923 - name : ruff format
2024 if : always()
21- uses : chartboost /ruff-action@v1
25+ uses : astral-sh /ruff-action@57714a7c8a2e59f32539362ba31877a1957dded1 # 3.5.1
2226 with :
23- args : format --diff
27+ version : " latest"
28+ args : format --check --diff
2429 - name : Set up Python
2530 id : setup_python
2631 if : always()
27- uses : actions/setup-python@v5
32+ uses : actions/setup-python@83679a892e2d95755f2dac6acb0bfd1e9ac5d548 # 6.1.0
2833 with :
2934 python-version : " 3.x"
3035 - name : Install mypy
@@ -44,12 +49,12 @@ jobs:
4449
4550 steps :
4651 - name : Checkout working copy
47- uses : actions/checkout@v4
52+ uses : actions/checkout@8e8c483db84b4bee98b60c0593521ed34d9990e8 # 6.0.1
4853 with :
4954 submodules : true
5055 persist-credentials : false
5156 - name : Set up Python
52- uses : actions/setup-python@v5
57+ uses : actions/setup-python@83679a892e2d95755f2dac6acb0bfd1e9ac5d548 # 6.1.0
5358 with :
5459 python-version : " 3.x"
5560 - name : Install dependency
@@ -60,14 +65,14 @@ jobs:
6065 run : |
6166 python -mbuild
6267 - name : Upload sdist
63- uses : actions/upload-artifact@v4
68+ uses : actions/upload-artifact@b7c566a772e6b6bfb58ed0dc250532a479d7789f # 6.0.0
6469 with :
6570 name : sdist
6671 path : dist/*.tar.gz
6772 retention-days : 1
6873
6974 - name : Upload wheel
70- uses : actions/upload-artifact@v4
75+ uses : actions/upload-artifact@b7c566a772e6b6bfb58ed0dc250532a479d7789f # 6.0.0
7176 with :
7277 name : wheel
7378 path : dist/*.whl
@@ -84,31 +89,31 @@ jobs:
8489 - sdist
8590 - source
8691 python-version :
87- - " 3.9"
8892 - " 3.10"
8993 - " 3.11"
9094 - " 3.12"
9195 - " 3.13"
92- - " pypy-3.10"
96+ - " 3.14"
97+ - " 3.14t"
9398 - " pypy-3.11"
94- - " graalpy-24 "
99+ - " graalpy-25 "
95100 include :
96101 - source : sdist
97102 artifact : dist/*.tar.gz
98103 - source : wheel
99104 artifact : dist/*.whl
100105 - opts : " "
101- - python-version : graalpy-24
106+ - python-version : graalpy-25
102107 opts : " --experimental-options --engine.CompileOnly='~tregex re'"
103108 steps :
104109 - name : Checkout working copy
105- uses : actions/checkout@v4
110+ uses : actions/checkout@8e8c483db84b4bee98b60c0593521ed34d9990e8 # 6.0.1
106111 with :
107112 submodules : true
108113 fetch-depth : 0
109114 persist-credentials : false
110115 - name : Set up Python ${{ matrix.python-version }}
111- uses : actions/setup-python@v5
116+ uses : actions/setup-python@83679a892e2d95755f2dac6acb0bfd1e9ac5d548 # 6.1.0
112117 with :
113118 python-version : ${{ matrix.python-version }}
114119 allow-prereleases : true
@@ -132,11 +137,20 @@ jobs:
132137 - run : ' python -mpip install --only-binary :all: google-re2 || true'
133138 - name : download ${{ matrix.source }} artifact
134139 if : matrix.artifact
135- uses : actions/download-artifact@v4
140+ uses : actions/download-artifact@37930b1c2abaa49bbe596cd826c3c89aef350131 # 7.0.0
136141 with :
137142 name : ${{ matrix.source }}
138143 path : dist/
139144 - name : install package in environment
140145 run : python -m pip install ${{ matrix.artifact || '.' }}
141146 - name : run tests
142147 run : python ${{ matrix.opts }} -m pytest -v -Werror -Wignore::ImportWarning --doctest-glob="*.rst" -ra
148+ # necessary to create a unified CI result and not have to update
149+ # branch protection rules every time the matrix gets updated
150+ results :
151+ name : " CI Results"
152+ needs : ["checks", "test"]
153+ runs-on : ubuntu-latest
154+ permissions : {}
155+ steps :
156+ - run : exit 0
0 commit comments