Skip to content

Commit 3ca116f

Browse files
authored
feat: publish arm wheels (#14)
1 parent 36d0af6 commit 3ca116f

1 file changed

Lines changed: 24 additions & 19 deletions

File tree

.github/workflows/ci.yml

Lines changed: 24 additions & 19 deletions
Original file line numberDiff line numberDiff line change
@@ -41,6 +41,7 @@ jobs:
4141
- "3.10"
4242
- "3.11"
4343
- "3.12"
44+
- "3.13"
4445
os:
4546
- ubuntu-latest
4647
- macOS-latest
@@ -74,6 +75,8 @@ jobs:
7475
release:
7576
runs-on: ubuntu-latest
7677
environment: release
78+
outputs:
79+
newest_release_tag: ${{ steps.release_tag.outputs.newest_release_tag }}
7780
if: github.ref == 'refs/heads/main'
7881
needs:
7982
- test
@@ -97,6 +100,15 @@ jobs:
97100
github_token: ${{ secrets.GITHUB_TOKEN }}
98101
pypi_token: ${{ secrets.PYPI_TOKEN }}
99102

103+
- name: Install python-semantic-release
104+
run: python3 -m pip install python-semantic-release==7.34.6
105+
106+
- name: Get Release Tag
107+
id: release_tag
108+
shell: bash
109+
run: |
110+
echo "newest_release_tag=$(semantic-release print-version --current)" >> $GITHUB_OUTPUT
111+
100112
build_wheels:
101113
needs: [release]
102114

@@ -105,47 +117,40 @@ jobs:
105117
strategy:
106118
matrix:
107119
os:
120+
- ubuntu-24.04-arm
108121
- macos-latest
109122
- ubuntu-latest
110123
- windows-latest
111-
124+
musl: ["", "musllinux"]
125+
exclude:
126+
- os: windows-latest
127+
musl: "musllinux"
128+
- os: macos-latest
129+
musl: "musllinux"
112130
steps:
113-
- uses: actions/checkout@v3
131+
- uses: actions/checkout@v4
114132
with:
133+
ref: "v${{ needs.release.outputs.newest_release_tag }}"
115134
fetch-depth: 0
116-
ref: "main"
117135

118136
# Used to host cibuildwheel
119137
- name: Set up Python
120138
uses: actions/setup-python@v4
121139
with:
122140
python-version: "3.10"
123141

124-
- name: Install python-semantic-release
125-
run: python3 -m pip install python-semantic-release==7.34.6
126-
127-
- name: Get Release Tag
128-
id: release_tag
129-
shell: bash
130-
run: |
131-
echo "::set-output name=newest_release_tag::$(semantic-release print-version --current)"
132-
133-
- uses: actions/checkout@v3
134-
with:
135-
ref: "v${{ steps.release_tag.outputs.newest_release_tag }}"
136-
fetch-depth: 0
137-
138142
- name: Install cibuildwheel
139-
run: python -m pip install cibuildwheel==2.16.2
143+
run: python -m pip install cibuildwheel==2.22.0
140144

141145
- name: Build wheels
142146
run: python -m cibuildwheel --output-dir wheelhouse
143147
# to supply options, put them in 'env', like:
144148
env:
145-
CIBW_SKIP: cp36-* cp37-* cp38-* cp39-* pp36-* pp37-* pp38-* pp39-*
149+
CIBW_SKIP: cp36-* cp37-* cp38-* cp39-* pp36-* pp37-* pp38-* pp39-* ${{ matrix.musl == 'musllinux' && '*manylinux*' || '*musllinux*' }}
146150
CIBW_BEFORE_ALL_LINUX: apt-get install -y gcc || yum install -y gcc || apk add gcc
147151
CIBW_BUILD_VERBOSITY: 3
148152
REQUIRE_CYTHON: 1
153+
CIBW_ARCHS_LINUX: ${{ matrix.os == 'ubuntu-24.04-arm' && 'aarch64' || 'auto' }}
149154

150155
- uses: actions/upload-artifact@v3
151156
with:

0 commit comments

Comments
 (0)