Skip to content

Commit 2985d89

Browse files
authored
Merge pull request #25 from karellen/require_libpython
Add require_libpython feature
2 parents e61dba5 + 0e10901 commit 2985d89

File tree

18 files changed

+400
-158
lines changed

18 files changed

+400
-158
lines changed

.github/exclusions.json

+46
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,46 @@
1+
[
2+
{
3+
"python-version": "3.12",
4+
"setuptools-version": "65.7"
5+
},
6+
{
7+
"python-version": "3.12",
8+
"setuptools-version": "64.0"
9+
},
10+
{
11+
"python-version": "3.12",
12+
"setuptools-version": "63.4"
13+
},
14+
{
15+
"python-version": "3.12",
16+
"setuptools-version": "62.6"
17+
},
18+
{
19+
"python-version": "3.12",
20+
"pip-version": "22.3"
21+
},
22+
{
23+
"python-version": "3.13-dev",
24+
"setuptools-version": "65.7"
25+
},
26+
{
27+
"python-version": "3.13-dev",
28+
"setuptools-version": "65.7"
29+
},
30+
{
31+
"python-version": "3.13-dev",
32+
"setuptools-version": "64.0"
33+
},
34+
{
35+
"python-version": "3.13-dev",
36+
"setuptools-version": "63.4"
37+
},
38+
{
39+
"python-version": "3.13-dev",
40+
"setuptools-version": "62.6"
41+
},
42+
{
43+
"python-version": "3.13-dev",
44+
"pip-version": "22.3"
45+
}
46+
]

.github/workflows/build.yml

+138-145
Original file line numberDiff line numberDiff line change
@@ -20,6 +20,9 @@ jobs:
2020
pip-version:
2121
- '24.2'
2222
setuptools-version:
23+
- '75.1'
24+
- '74.1'
25+
- '73.0'
2326
- '72.1'
2427
- '71.1'
2528
- '70.3'
@@ -43,162 +46,152 @@ jobs:
4346
with-venv: false
4447
python-version: ${{ matrix.python-version }}
4548
pyb-extra-args: ${{ env.PYB_EXTRA_ARGS }}
46-
build-primary:
49+
read-exclusions:
50+
runs-on: ubuntu-latest
4751
needs: build-smoke-test
48-
runs-on: ${{ matrix.os }}
49-
continue-on-error: false
50-
strategy:
51-
fail-fast: false
52-
matrix:
53-
os:
54-
- ubuntu-latest
55-
- macos-13
56-
python-version:
57-
- '3.12'
58-
- '3.11'
59-
- '3.10'
60-
pip-version:
61-
- '24.2'
62-
- '24.1'
63-
- '24.0'
64-
- '23.3'
65-
- '22.3'
66-
setuptools-version:
67-
- '72.1'
68-
- '71.1'
69-
- '70.3'
70-
- '69.5'
71-
- '68.2'
72-
- '67.8'
73-
- '66.1'
74-
- '65.7'
75-
exclude:
76-
- python-version: '3.12'
77-
setuptools-version: '65.7'
78-
- python-version: '3.12'
79-
pip-version: '22.3'
80-
env:
81-
DEPLOY_PYTHONS: "3.12"
82-
DEPLOY_OSES: "Linux"
83-
DEPLOY_PIPS: "24.2"
84-
DEPLOY_SETUPTOOLS: "72.1"
85-
TWINE_USERNAME: __token__
86-
TWINE_PASSWORD: ${{ secrets.PYPI_TOKEN }}
87-
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
52+
outputs:
53+
BUILD_EXCLUSIONS: ${{ steps.read-exclusions-step.outputs.BUILD_EXCLUSIONS }}
8854
steps:
8955
- uses: actions/checkout@v4
90-
- shell: bash
91-
run: |
92-
echo "PYB_EXTRA_ARGS=--no-venvs" >> $GITHUB_ENV
93-
echo "SETUPTOOLS_VER=~=${{matrix.setuptools-version}}" >> $GITHUB_ENV
94-
echo "PIP_VER=~=${{matrix.pip-version}}" >> $GITHUB_ENV
95-
96-
- shell: bash
97-
if: |
98-
github.event_name == 'push' &&
99-
contains(env.DEPLOY_OSES, runner.os) &&
100-
contains(env.DEPLOY_PYTHONS, matrix.python-version) &&
101-
contains(env.DEPLOY_PIPS, matrix.pip-version) &&
102-
contains(env.DEPLOY_SETUPTOOLS, matrix.setuptools-version)
56+
- id: read-exclusions-step
10357
run: |
104-
echo "PYB_EXTRA_ARGS=+upload --no-venvs" >> $GITHUB_ENV
58+
set -xeEu
59+
set -o pipefail
60+
{
61+
echo 'BUILD_EXCLUSIONS<<EOF'
62+
cat ./.github/exclusions.json
63+
echo -e '\nEOF'
64+
} >> "$GITHUB_OUTPUT"
10565
106-
- uses: pybuilder/build@master
107-
with:
108-
checkout: false
109-
with-venv: false
110-
python-version: ${{ matrix.python-version }}
111-
pyb-extra-args: ${{ env.PYB_EXTRA_ARGS }}
112-
build-secondary:
113-
needs: build-primary
114-
runs-on: ${{ matrix.os }}
115-
continue-on-error: false
116-
strategy:
117-
fail-fast: false
118-
matrix:
119-
os:
120-
- ubuntu-latest
121-
- macos-13
122-
python-version:
123-
- '3.9'
124-
- '3.8'
125-
pip-version:
126-
- '24.2'
127-
- '24.1'
128-
- '24.0'
129-
- '23.3'
130-
- '22.3'
131-
setuptools-version:
132-
- '72.1'
133-
- '71.1'
134-
- '70.3'
135-
- '69.5'
136-
- '68.2'
137-
- '67.8'
138-
- '66.1'
139-
- '65.7'
140-
- '64.0'
141-
- '63.4'
142-
- '62.6'
143-
env:
144-
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
145-
steps:
146-
- uses: actions/checkout@v4
147-
- shell: bash
148-
run: |
149-
echo "PYB_EXTRA_ARGS=--no-venvs" >> $GITHUB_ENV
150-
echo "SETUPTOOLS_VER=~=${{matrix.setuptools-version}}" >> $GITHUB_ENV
151-
echo "PIP_VER=~=${{matrix.pip-version}}" >> $GITHUB_ENV
152-
153-
- uses: pybuilder/build@master
154-
with:
155-
checkout: false
156-
with-venv: false
157-
python-version: ${{ matrix.python-version }}
158-
pyb-extra-args: ${{ env.PYB_EXTRA_ARGS }}
159-
build-experimental:
160-
needs: build-primary
161-
runs-on: ${{ matrix.os }}
162-
continue-on-error: true
163-
strategy:
164-
fail-fast: false
165-
matrix:
166-
os:
167-
- ubuntu-latest
168-
- macos-13
169-
python-version:
170-
- '3.13-dev'
171-
pip-version:
172-
- '24.2'
173-
setuptools-version:
174-
- '72.1'
175-
env:
176-
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
177-
steps:
178-
- uses: actions/checkout@v4
179-
- shell: bash
180-
run: |
181-
echo "PYB_EXTRA_ARGS=--no-venvs" >> $GITHUB_ENV
182-
echo "SETUPTOOLS_VER=~=${{matrix.setuptools-version}}" >> $GITHUB_ENV
183-
echo "PIP_VER=~=${{matrix.pip-version}}" >> $GITHUB_ENV
184-
185-
- uses: pybuilder/build@master
186-
with:
187-
checkout: false
188-
with-venv: false
189-
python-version: ${{ matrix.python-version }}
190-
pyb-extra-args: ${{ env.PYB_EXTRA_ARGS }}
66+
build-ubuntu-py312:
67+
uses: ./.github/workflows/template.yml
68+
with:
69+
os: ubuntu-latest
70+
python-version: '3.12'
71+
deploy: ${{ github.event_name == 'push' }}
72+
deploy-pip: '24.2'
73+
deploy-setuptools: '75.1'
74+
exclude: ${{ needs.read-exclusions.outputs.BUILD_EXCLUSIONS }}
75+
secrets: inherit
76+
needs: [ read-exclusions ]
77+
build-macos-py312:
78+
uses: ./.github/workflows/template.yml
79+
with:
80+
os: macos-13
81+
python-version: '3.12'
82+
exclude: ${{ needs.read-exclusions.outputs.BUILD_EXCLUSIONS }}
83+
secrets: inherit
84+
needs: [ build-ubuntu-py312, read-exclusions ]
85+
build-ubuntu-py311:
86+
uses: ./.github/workflows/template.yml
87+
with:
88+
os: ubuntu-latest
89+
python-version: '3.11'
90+
exclude: ${{ needs.read-exclusions.outputs.BUILD_EXCLUSIONS }}
91+
secrets: inherit
92+
needs: [ read-exclusions ]
93+
build-macos-py311:
94+
uses: ./.github/workflows/template.yml
95+
with:
96+
os: macos-13
97+
python-version: '3.11'
98+
exclude: ${{ needs.read-exclusions.outputs.BUILD_EXCLUSIONS }}
99+
secrets: inherit
100+
needs: [ build-ubuntu-py311, read-exclusions ]
101+
build-ubuntu-py310:
102+
uses: ./.github/workflows/template.yml
103+
with:
104+
os: ubuntu-latest
105+
python-version: '3.10'
106+
exclude: ${{ needs.read-exclusions.outputs.BUILD_EXCLUSIONS }}
107+
secrets: inherit
108+
needs: [ read-exclusions ]
109+
build-macos-py310:
110+
uses: ./.github/workflows/template.yml
111+
with:
112+
os: macos-13
113+
python-version: '3.10'
114+
exclude: ${{ needs.read-exclusions.outputs.BUILD_EXCLUSIONS }}
115+
secrets: inherit
116+
needs: [ build-ubuntu-py310, read-exclusions ]
117+
build-ubuntu-py39:
118+
uses: ./.github/workflows/template.yml
119+
with:
120+
os: ubuntu-latest
121+
python-version: '3.9'
122+
exclude: ${{ needs.read-exclusions.outputs.BUILD_EXCLUSIONS }}
123+
secrets: inherit
124+
needs: [ read-exclusions ]
125+
build-macos-py39:
126+
uses: ./.github/workflows/template.yml
127+
with:
128+
os: macos-13
129+
python-version: '3.9'
130+
exclude: ${{ needs.read-exclusions.outputs.BUILD_EXCLUSIONS }}
131+
secrets: inherit
132+
needs: [ build-ubuntu-py39, read-exclusions ]
133+
build-ubuntu-py38:
134+
uses: ./.github/workflows/template.yml
135+
with:
136+
os: ubuntu-latest
137+
python-version: '3.8'
138+
exclude: ${{ needs.read-exclusions.outputs.BUILD_EXCLUSIONS }}
139+
secrets: inherit
140+
needs: [ read-exclusions ]
141+
build-macos-py38:
142+
uses: ./.github/workflows/template.yml
143+
with:
144+
os: macos-13
145+
python-version: '3.8'
146+
exclude: ${{ needs.read-exclusions.outputs.BUILD_EXCLUSIONS }}
147+
secrets: inherit
148+
needs: [ build-ubuntu-py38, read-exclusions ]
149+
build-ubuntu-py313:
150+
uses: ./.github/workflows/template.yml
151+
with:
152+
os: ubuntu-latest
153+
python-version: '3.13-dev'
154+
exclude: ${{ needs.read-exclusions.outputs.BUILD_EXCLUSIONS }}
155+
secrets: inherit
156+
needs: [ read-exclusions ]
157+
build-macos-py313:
158+
uses: ./.github/workflows/template.yml
159+
with:
160+
os: macos-13
161+
python-version: '3.13-dev'
162+
exclude: ${{ needs.read-exclusions.outputs.BUILD_EXCLUSIONS }}
163+
secrets: inherit
164+
needs: [ build-ubuntu-py313, read-exclusions ]
191165
build-summary:
192166
if: success() || failure()
193167
runs-on: ubuntu-latest
194168
name: Build Summary
195169
needs:
196-
- build-primary
197-
- build-secondary
198-
- build-experimental
170+
- build-ubuntu-py313
171+
- build-macos-py313
172+
- build-ubuntu-py312
173+
- build-macos-py312
174+
- build-ubuntu-py311
175+
- build-macos-py311
176+
- build-ubuntu-py310
177+
- build-macos-py310
178+
- build-ubuntu-py39
179+
- build-macos-py39
180+
- build-ubuntu-py38
181+
- build-macos-py38
199182
steps:
200183
- name: Check build matrix status
201184
if: |
202-
needs.build-primary.result != 'success' ||
203-
needs.build-secondary.result != 'success'
185+
needs.build-ubuntu-py313.result != 'success' ||
186+
needs.build-macos-py313.result != 'success' ||
187+
needs.build-ubuntu-py312.result != 'success' ||
188+
needs.build-macos-py312.result != 'success' ||
189+
needs.build-ubuntu-py311.result != 'success' ||
190+
needs.build-macos-py311.result != 'success' ||
191+
needs.build-ubuntu-py310.result != 'success' ||
192+
needs.build-macos-py310.result != 'success' ||
193+
needs.build-ubuntu-py39.result != 'success' ||
194+
needs.build-macos-py39.result != 'success' ||
195+
needs.build-ubuntu-py38.result != 'success' ||
196+
needs.build-macos-py38.result != 'success'
204197
run: exit 1

0 commit comments

Comments
 (0)