1010 tags :
1111 - ' v*'
1212
13+ permissions : {}
14+
1315env :
14- LIB_VERSION : ' 2024.10 .1'
15- PYTHON_VERSION : ' 3.11.9 '
16- CIBW_VERSION : ' 2.21.3 '
17- CIBW_BUILD : ' cp311 -* cp312 -*'
16+ LIB_VERSION : ' 2026.7 .1'
17+ PYTHON_VERSION : ' 3.14 '
18+ CIBW_VERSION : ' 4.1.0 '
19+ CIBW_BUILD : ' cp314 -* cp314t -*'
1820 CIBW_SKIP : ' *-musllinux_*'
1921 CIBW_BUILD_VERBOSITY : 1
22+ CIBW_TEST_COMMAND : ' python -c "from pysqlcipher3 import dbapi2 as sqlite; conn = sqlite.connect('' :memory:'' ); conn.close()"'
2023
2124concurrency :
2225 group : ${{ github.workflow }}-${{ github.head_ref || github.ref }}
2326 cancel-in-progress : true
2427
2528jobs :
2629 build_macos_openssl :
27- runs-on : macos-13
30+ runs-on : macos-15
2831 strategy :
2932 matrix :
3033 ARCH :
3841 FLAGS : no-shared no-asm no-idea no-camellia no-seed no-bf no-cast no-rc2 no-rc4 no-rc5 no-md2 no-md4 no-ecdh no-sock no-ssl3 no-dsa no-dh no-ec no-ecdsa no-tls1 no-rfc3779 no-whirlpool no-srp no-mdc2 no-ecdh no-engine no-srtp no-weak-ssl-ciphers
3942 name : " Build OpenSSL for macOS (${{ matrix.ARCH.NAME }})"
4043 steps :
41- - uses : actions/checkout@v4
44+ - uses : actions/checkout@9c091bb21b7c1c1d1991bb908d89e4e9dddfe3e0 # v7.0.0
4245 with :
4346 submodules : true
4447 persist-credentials : false
@@ -48,68 +51,41 @@ jobs:
4851 cd openssl
4952 perl ./Configure \
5053 --prefix="${BASEDIR}/artifact" \
51- --openssldir=${{ matrix.ARCH. OPENSSLDIR }} \
52- darwin64-${{ matrix.ARCH.NAME }} -cc \
53- ${{ matrix.ARCH.FLAGS } }
54+ --openssldir="${ OPENSSLDIR}" \
55+ " darwin64-${ARCH_NAME} -cc" \
56+ ${CONFIGURE_FLAGS }
5457
55- make -j$(sysctl -n hw.logicalcpu)
58+ make -j$(sysctl -n hw.logicalcpu) build_sw
5659 make install_sw
5760 env :
61+ ARCH_NAME : ${{ matrix.ARCH.NAME }}
5862 CFLAGS : ${{ matrix.ARCH.CFLAGS }}
63+ CONFIGURE_FLAGS : ${{ matrix.ARCH.FLAGS }}
64+ OPENSSLDIR : ${{ matrix.ARCH.OPENSSLDIR }}
5965
60- - uses : actions/upload-artifact@v4
66+ - uses : actions/upload-artifact@043fb46d1a93c77aae656e7c1c64a875d1fc6a0a # v7.0.1
6167 with :
6268 name : " openssl-macos-${{ matrix.ARCH.NAME }}"
6369 path : artifact/
6470
65- build_macos_openssl_universal2 :
66- runs-on : macos-13
67- name : " Build OpenSSL for macOS (universal2)"
68- needs : [build_macos_openssl]
69- steps :
70- - uses : actions/download-artifact@v4
71- with :
72- name : openssl-macos-x86_64
73- path : x86-64
74- - uses : actions/download-artifact@v4
75- with :
76- name : openssl-macos-arm64
77- path : arm64
78- - name : Create universal2 OpenSSL
79- run : |
80- mkdir artifact
81- cd artifact
82- mkdir bin lib
83- cp -r ../x86-64/include .
84- cp -r ../x86-64/lib/pkgconfig lib/
85- cp ../x86-64/bin/c_rehash bin/ # c_rehash is a perl script
86- lipo -create -output bin/openssl ../x86-64/bin/openssl ../arm64/bin/openssl
87- lipo -create -output lib/libssl.a ../x86-64/lib/libssl.a ../arm64/lib/libssl.a
88- lipo -create -output lib/libcrypto.a ../x86-64/lib/libcrypto.a ../arm64/lib/libcrypto.a
89- - uses : actions/upload-artifact@v4
90- with :
91- name : " openssl-macos-universal2"
92- path : artifact/
93-
9471 build_wheels_macos :
9572 name : ' Build wheels for macOS'
96- runs-on : macos-13
73+ runs-on : macos-15
9774 strategy :
9875 fail-fast : false
9976 matrix :
100- arch : [arm64, x86_64, universal2 ]
101- needs : [build_macos_openssl_universal2 ]
77+ arch : [arm64, x86_64]
78+ needs : [build_macos_openssl ]
10279 steps :
103- - uses : actions/checkout@v4
80+ - uses : actions/checkout@9c091bb21b7c1c1d1991bb908d89e4e9dddfe3e0 # v7.0.0
10481 with :
10582 submodules : true
10683 persist-credentials : false
10784 - name : Set up python
108- uses : actions/setup-python@v5
85+ uses : actions/setup-python@ece7cb06caefa5fff74198d8649806c4678c61a1 # v6.3.0
10986 with :
11087 python-version : ${{ env.PYTHON_VERSION }}
111- cache : ' pip'
112- - uses : actions/download-artifact@v4
88+ - uses : actions/download-artifact@3e5f45b2cfb9172054b4087a40e8e0b5a5461e7c # v8.0.1
11389 with :
11490 name : openssl-macos-${{ matrix.arch }}
11591 path : openssl-macos-${{ matrix.arch }}
12399 env :
124100 CIBW_ARCHS_MACOS : ${{ matrix.arch }}
125101 CIBW_BEFORE_ALL_MACOS : ./build.sh
126- - uses : actions/upload-artifact@v4
102+ - uses : actions/upload-artifact@043fb46d1a93c77aae656e7c1c64a875d1fc6a0a # v7.0.1
127103 with :
128104 name : pypi-wheels-macos-${{ matrix.arch }}
129105 path : build/wheelhouse/*.whl
@@ -140,15 +116,14 @@ jobs:
140116 - name : native
141117 runner : ubuntu-24.04
142118 steps :
143- - uses : actions/checkout@v4
119+ - uses : actions/checkout@9c091bb21b7c1c1d1991bb908d89e4e9dddfe3e0 # v7.0.0
144120 with :
145121 submodules : true
146122 persist-credentials : false
147123 - name : Set up python
148- uses : actions/setup-python@v5
124+ uses : actions/setup-python@ece7cb06caefa5fff74198d8649806c4678c61a1 # v6.3.0
149125 with :
150126 python-version : ${{ env.PYTHON_VERSION }}
151- cache : ' pip'
152127 - name : prepare build directory
153128 run : ./scripts/prepare.sh
154129 env :
@@ -161,24 +136,23 @@ jobs:
161136 env :
162137 CIBW_BEFORE_ALL_LINUX : ./build.sh
163138 CIBW_ARCHS_LINUX : ${{ matrix.arch.name }}
164- - uses : actions/upload-artifact@v4
139+ - uses : actions/upload-artifact@043fb46d1a93c77aae656e7c1c64a875d1fc6a0a # v7.0.1
165140 with :
166141 name : pypi-wheels-linux-${{ matrix.arch.name }}
167142 path : build/wheelhouse/*.whl
168143
169144 build_wheels_windows :
170145 name : ' Build wheels for Windows'
171- runs-on : ' windows-2019 '
146+ runs-on : ' windows-latest '
172147 steps :
173- - uses : actions/checkout@v4
148+ - uses : actions/checkout@9c091bb21b7c1c1d1991bb908d89e4e9dddfe3e0 # v7.0.0
174149 with :
175150 submodules : true
176151 persist-credentials : false
177152 - name : Set up python
178- uses : actions/setup-python@v5
153+ uses : actions/setup-python@ece7cb06caefa5fff74198d8649806c4678c61a1 # v6.3.0
179154 with :
180155 python-version : ${{ env.PYTHON_VERSION }}
181- cache : ' pip'
182156 - name : prepare build directory
183157 run : ./scripts/prepare.ps1
184158 - name : Install cibuildwheel
@@ -192,70 +166,67 @@ jobs:
192166 - name : clean openssl conf
193167 shell : pwsh
194168 run : echo "OPENSSL_CONF=''" | Out-File -FilePath $Env:GITHUB_ENV -Encoding utf-8 -Append
195- - uses : actions/upload-artifact@v4
169+ - uses : actions/upload-artifact@043fb46d1a93c77aae656e7c1c64a875d1fc6a0a # v7.0.1
196170 with :
197171 name : pypi-wheels-windows
198172 path : build\wheelhouse\*.whl
199173
200174 build_sdist :
201175 name : ' Build sdist'
202- runs-on : ubuntu-20 .04
176+ runs-on : ubuntu-24 .04
203177 steps :
204- - uses : actions/checkout@v4
178+ - uses : actions/checkout@9c091bb21b7c1c1d1991bb908d89e4e9dddfe3e0 # v7.0.0
205179 with :
206180 submodules : true
207181 persist-credentials : false
208182 - name : Set up python
209- uses : actions/setup-python@v5
183+ uses : actions/setup-python@ece7cb06caefa5fff74198d8649806c4678c61a1 # v6.3.0
210184 with :
211185 python-version : ${{ env.PYTHON_VERSION }}
212- cache : ' pip'
213186 - name : prepare build directory
214187 run : ./scripts/prepare.sh
215188 - name : Build sdist
216189 working-directory : build
217190 run : python3 -m pip install --upgrade build && python -m build -s
218191 - name : Store artifacts
219- uses : actions/upload-artifact@v4
192+ uses : actions/upload-artifact@043fb46d1a93c77aae656e7c1c64a875d1fc6a0a # v7.0.1
220193 with :
221194 name : pypi-sdist
222195 path : build/dist/*.tar.gz
223196
224197 upload_pypi_test :
225198 name : Upload to PyPI (test)
226199 needs : [build_wheels_macos, build_wheels_linux, build_wheels_windows, build_sdist]
227- runs-on : ubuntu-20 .04
200+ runs-on : ubuntu-24 .04
228201 if : github.event_name == 'push' && !(startsWith(github.ref, 'refs/tags/v'))
229202 environment : test-pypi
230203 permissions :
231- # IMPORTANT: this permission is mandatory for Trusted Publishing
232- id-token : write
204+ id-token : write # needed for PyPI Trusted Publishing
233205 steps :
234- - uses : actions/download-artifact@v4
206+ - uses : actions/download-artifact@3e5f45b2cfb9172054b4087a40e8e0b5a5461e7c # v8.0.1
235207 with :
236208 merge-multiple : true
237209 pattern : pypi-*
238210 path : dist
239211
240- - uses : pypa/gh-action-pypi-publish@v1.10.3
212+ - uses : pypa/gh-action-pypi-publish@f7600683efdcb7656dec5b29656edb7bc586e597 # v1.10.3
241213 with :
242214 repository-url : https://test.pypi.org/legacy/
243215 skip-existing : true
244216
245217 upload_pypi :
246218 name : Upload to PyPI (prod)
247219 needs : [build_wheels_macos, build_wheels_linux, build_wheels_windows, build_sdist]
248- runs-on : ubuntu-20 .04
220+ runs-on : ubuntu-24 .04
249221 if : github.event_name == 'push' && startsWith(github.ref, 'refs/tags/v')
250222 environment : pypi
251223 permissions :
252- # IMPORTANT: this permission is mandatory for Trusted Publishing
253- id-token : write
224+ id-token : write # needed for PyPI Trusted Publishing
254225 steps :
255- - uses : actions/download-artifact@v4
226+ - uses : actions/download-artifact@3e5f45b2cfb9172054b4087a40e8e0b5a5461e7c # v8.0.1
256227 with :
257228 merge-multiple : true
258229 pattern : pypi-*
259230 path : dist
260231
261- - uses : pypa/gh-action-pypi-publish@v1.10.3
232+ - uses : pypa/gh-action-pypi-publish@f7600683efdcb7656dec5b29656edb7bc586e597 # v1.10.3
0 commit comments