-
Notifications
You must be signed in to change notification settings - Fork 33
151 lines (139 loc) · 4.42 KB
/
pypi.yaml
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
# This file is autogenerated by maturin v1.5.1, and minimally edited by hand.
# See comments below for the edited sections.
#
# To update, run
#
# maturin generate-ci github
#
# and re-add the edits.
name: CI
on:
push:
branches:
- main
- master
tags:
- '*'
pull_request:
workflow_dispatch:
permissions:
contents: read
jobs:
linux:
runs-on: ${{ matrix.platform.runner }}
strategy:
matrix:
platform:
- runner: ubuntu-latest
target: x86_64
- runner: ubuntu-latest
target: x86
- runner: ubuntu-latest
target: aarch64
- runner: ubuntu-latest
target: armv7
# BEGIN EDITED SECTION #
# The `s390x` and `ppc64le` architectures have been removed as they are not supported.
# END EDITED SECTION #
steps:
- uses: actions/checkout@v4
- uses: actions/setup-python@v5
with:
python-version: '3.10'
- name: Build wheels
uses: PyO3/maturin-action@v1
with:
target: ${{ matrix.platform.target }}
args: --release --out dist --find-interpreter
sccache: 'true'
manylinux: auto
# BEGIN EDITED SECTION #
# Install OpenSSL development headers into the manylinux docker container
# used to build the wheels.
# Note: libatomic is necessary for the build to succeed.
before-script-linux: |
# If we're running on rhel centos, install needed packages.
if command -v yum &> /dev/null; then
yum update -y && yum install -y perl-core openssl openssl-devel pkgconfig libatomic
# If we're running on i686 we need to symlink libatomic
# in order to build openssl with -latomic flag.
if [[ ! -d "/usr/lib64" ]]; then
ln -s /usr/lib/libatomic.so.1 /usr/lib/libatomic.so
fi
OPENSSL_LIB_DIR=/usr/lib64
else
# If we're running on debian-based system.
apt update -y && apt-get install -y libssl-dev openssl pkg-config
OPENSSL_LIB_DIR=/usr/lib/x86_64-linux-gnu
fi
echo "OpenSSL Lib Dir: $OPENSSL_LIB_DIR"
echo "OpenSSL Include Dir: $OPENSSL_INCLUDE_DIR"
export OPENSSL_INCLUDE_DIR=/usr/include/openssl
pkg-config --libs --cflags openssl
# END EDITED SECTION #
- name: Upload wheels
uses: actions/upload-artifact@v4
with:
name: wheels-linux-${{ matrix.platform.target }}
path: dist
# BEGIN EDITED SECTION #
# The `windows` job has been removed as it is not a supported platform.
# END EDITED SECTION #
macos:
runs-on: ${{ matrix.platform.runner }}
strategy:
matrix:
platform:
- runner: macos-latest
target: x86_64
- runner: macos-14
target: aarch64
steps:
- uses: actions/checkout@v4
- uses: actions/setup-python@v5
with:
python-version: '3.10'
- name: Build wheels
uses: PyO3/maturin-action@v1
with:
target: ${{ matrix.platform.target }}
args: --release --out dist --find-interpreter
sccache: 'true'
- name: Upload wheels
uses: actions/upload-artifact@v4
with:
name: wheels-macos-${{ matrix.platform.target }}
path: dist
sdist:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v4
- name: Build sdist
uses: PyO3/maturin-action@v1
with:
command: sdist
args: --out dist
- name: Upload sdist
uses: actions/upload-artifact@v4
with:
name: wheels-sdist
path: dist
release:
name: Release
runs-on: ubuntu-latest
if: "startsWith(github.ref, 'refs/tags/')"
# BEGIN EDITED SECTION #
# Note: The `windows` job was removed from this list.
needs: [linux, macos, sdist]
# END EDITED SECTION #
steps:
- uses: actions/download-artifact@v4
- name: Publish to PyPI
uses: PyO3/maturin-action@v1
# BEGIN EDITED SECTION
# The `MATURIN_PYPI_TOKEN` env var was removed in order to authenticate
# to PyPI using the Trusted Publishers feature instead.
# END EDITED SECTION.
with:
command: upload
args: --non-interactive --skip-existing wheels-*/*