Skip to content

Commit fb90ec6

Browse files
Action to build wheels with precompiled libexiv2
This is quicker than building our own libexiv2, but misses out some features such as video (linux) and localisation (Windows).
1 parent f7d4691 commit fb90ec6

File tree

1 file changed

+71
-0
lines changed

1 file changed

+71
-0
lines changed
Lines changed: 71 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,71 @@
1+
name: Build python-exiv2 wheels (prebuilt libexiv2)
2+
on: workflow_dispatch
3+
4+
jobs:
5+
build:
6+
name: build on ${{ matrix.os }}
7+
runs-on: ${{ matrix.os }}
8+
strategy:
9+
matrix:
10+
os:
11+
- ubuntu-22.04
12+
- ubuntu-22.04-arm
13+
- macos-13
14+
- macos-14
15+
- windows-2022
16+
include:
17+
- os: ubuntu-22.04
18+
arch: Linux-x86_64
19+
- os: ubuntu-22.04-arm
20+
arch: Linux-aarch64
21+
- os: macos-13
22+
arch: Darwin-x86_64
23+
target: 13.7
24+
- os: macos-14
25+
arch: Darwin-arm64
26+
target: 14.0
27+
- os: windows-2022
28+
arch: 2022msvc-AMD64
29+
defaults:
30+
run:
31+
shell: bash
32+
env:
33+
EXIV2_VSN: 0.28.7
34+
steps:
35+
- name: Check out repository code
36+
uses: actions/checkout@v4
37+
38+
- name: Download exiv2.tar.gz
39+
if: ${{ runner.os != 'Windows' }}
40+
run: |
41+
wget -nv https://github.com/Exiv2/exiv2/releases/download/v${{ env.EXIV2_VSN }}/exiv2-${{ env.EXIV2_VSN }}-${{ matrix.arch }}.tar.gz -O - |
42+
tar zxf -
43+
44+
- name: Download exiv2.zip
45+
if: ${{ runner.os == 'Windows' }}
46+
run: |
47+
c:/msys64/usr/bin/wget.exe -nv https://github.com/Exiv2/exiv2/releases/download/v${{ env.EXIV2_VSN }}/exiv2-${{ env.EXIV2_VSN }}-${{ matrix.arch }}.zip -O exiv2.zip
48+
unzip exiv2.zip
49+
50+
- name: Build wheels
51+
# [email protected] omits Python 3.6 & 3.7
52+
uses: pypa/[email protected]
53+
env:
54+
CIBW_ARCHS: auto64
55+
CIBW_ENVIRONMENT: >
56+
EXIV2_ROOT=exiv2-${{ env.EXIV2_VSN }}-${{ matrix.arch }}
57+
CIBW_MANYLINUX_X86_64_IMAGE: manylinux_2_34
58+
CIBW_MANYLINUX_AARCH64_IMAGE: manylinux_2_34
59+
CIBW_BUILD: "cp*"
60+
CIBW_SKIP: "*musllinux* cp314*"
61+
CIBW_BEFORE_ALL_MACOS: brew install inih
62+
CIBW_TEST_COMMAND: >
63+
python -m exiv2 -v &&
64+
python -m unittest discover {project}/tests -v
65+
MACOSX_DEPLOYMENT_TARGET: ${{ matrix.target }}
66+
67+
- name: Store results
68+
uses: actions/upload-artifact@v4
69+
with:
70+
name: exiv2-wheels-${{ runner.os }}-${{ runner.arch }}
71+
path: wheelhouse/*.whl

0 commit comments

Comments
 (0)