5
5
branches : [master]
6
6
paths :
7
7
- ' .github/workflows/build-cache-deps.yml'
8
- - ' docker/*_armv7l_wheels.Dockerfile'
9
8
- ' libheif/linux/**'
10
9
- ' libheif/linux_*.py'
11
10
- ' setup.py'
@@ -18,26 +17,66 @@ concurrency:
18
17
cancel-in-progress : true
19
18
20
19
jobs :
21
- dependencies_linux :
20
+ dependencies_linux_amd64 :
22
21
strategy :
23
22
fail-fast : true
24
23
matrix :
25
24
cibw_buildlinux : [ manylinux, musllinux ]
26
- cibw_arch : [ "aarch64", "x86_64" ]
27
- name : ${{ matrix.cibw_arch }} • ${{ matrix.cibw_buildlinux }}
28
- runs-on : ubuntu-20.04
25
+ name : AMD64 • ${{ matrix.cibw_buildlinux }}
26
+ runs-on : ubuntu-24.04
29
27
env :
30
- KEY_HEAD : ${{ matrix.cibw_arch }} -${{ matrix.cibw_buildlinux }}
28
+ KEY_HEAD : x86_64 -${{ matrix.cibw_buildlinux }}
31
29
BUILD_DIR : " /tmp/ph_build_stuff"
32
30
33
31
steps :
34
32
- uses : actions/checkout@v4
35
- - name : Set up QEMU
36
- if : matrix.cibw_arch == 'aarch64'
37
- uses : docker/setup-qemu-action@v3
33
+ - name : Install cibuildwheel & twine
34
+ run : python3 -m pip install twine cibuildwheel==2.21.3
35
+
36
+ - uses : actions/cache@v4
38
37
with :
39
- platforms : arm64
38
+ path : ${{ env.BUILD_DIR }}
39
+ key : ${{ env.KEY_HEAD }}-${{ env.KEY_C_BUILD }}-${{ env.KEY_LINUX_LIBS }}
40
+ env :
41
+ KEY_LINUX_LIBS : ${{ hashFiles('libheif/linux/**') }}
42
+ KEY_C_BUILD : ${{ hashFiles('libheif/linux_*.py') }}-${{ hashFiles('libheif/setup.py') }}
43
+
44
+ - name : Start test build
45
+ run : cibuildwheel
46
+ env :
47
+ CIBW_BUILD : ${{ format('cp39-{0}*', matrix.cibw_buildlinux) }}
48
+ CIBW_ARCHS : " x86_64"
49
+ CIBW_BEFORE_ALL_LINUX : |
50
+ python3 {package}/libheif/linux_build_libs.py
51
+ CIBW_ENVIRONMENT_LINUX : BUILD_DIR=/host${{ env.BUILD_DIR }} PH_FULL_ACTION=1
52
+ CIBW_BUILD_VERBOSITY : 1
40
53
54
+ - name : Checking built wheels
55
+ run : twine check wheelhouse/*
56
+
57
+ - name : Uploading wheels
58
+ uses : actions/upload-artifact@v3
59
+ with :
60
+ name : wheels
61
+ path : wheelhouse/*.whl
62
+ if-no-files-found : error
63
+
64
+ - name : Fix cache permissions
65
+ run : sudo chmod -R 777 ${{ env.BUILD_DIR }}
66
+
67
+ dependencies_linux_arm64 :
68
+ strategy :
69
+ fail-fast : true
70
+ matrix :
71
+ cibw_buildlinux : [ manylinux, musllinux ]
72
+ name : ARM64 • ${{ matrix.cibw_buildlinux }}
73
+ runs-on : ubuntu-24.04-arm
74
+ env :
75
+ KEY_HEAD : aarch64-${{ matrix.cibw_buildlinux }}
76
+ BUILD_DIR : " /tmp/ph_build_stuff"
77
+
78
+ steps :
79
+ - uses : actions/checkout@v4
41
80
- name : Install cibuildwheel & twine
42
81
run : python3 -m pip install twine cibuildwheel==2.21.3
43
82
53
92
run : cibuildwheel
54
93
env :
55
94
CIBW_BUILD : ${{ format('cp39-{0}*', matrix.cibw_buildlinux) }}
56
- CIBW_ARCHS : ${{ matrix.cibw_arch }}
95
+ CIBW_ARCHS : " aarch64 "
57
96
CIBW_BEFORE_ALL_LINUX : |
58
97
python3 {package}/libheif/linux_build_libs.py
59
98
CIBW_ENVIRONMENT_LINUX : BUILD_DIR=/host${{ env.BUILD_DIR }} PH_FULL_ACTION=1
@@ -72,16 +111,15 @@ jobs:
72
111
- name : Fix cache permissions
73
112
run : sudo chmod -R 777 ${{ env.BUILD_DIR }}
74
113
75
- pi_heif_dependencies_linux :
114
+ pi_heif_dependencies_linux_amd64 :
76
115
strategy :
77
116
fail-fast : true
78
117
matrix :
79
118
cibw_buildlinux : [ manylinux, musllinux ]
80
- cibw_arch : [ "aarch64", "x86_64" ]
81
- name : Pi-Heif • ${{ matrix.cibw_arch }} • ${{ matrix.cibw_buildlinux }}
82
- runs-on : ubuntu-20.04
119
+ name : Pi-Heif • AMD64 • ${{ matrix.cibw_buildlinux }}
120
+ runs-on : ubuntu-24.04
83
121
env :
84
- KEY_HEAD : Pi-Heif-${{ matrix.cibw_arch }} -${{ matrix.cibw_buildlinux }}
122
+ KEY_HEAD : Pi-Heif-x86_64 -${{ matrix.cibw_buildlinux }}
85
123
BUILD_DIR : " /tmp/ph_build_stuff"
86
124
87
125
steps :
@@ -91,11 +129,58 @@ jobs:
91
129
cp -r -v ./pi-heif/* .
92
130
python3 .github/transform_to-pi_heif.py
93
131
94
- - name : Set up QEMU
95
- if : matrix.cibw_arch == 'aarch64'
96
- uses : docker/setup-qemu-action@v3
132
+ - name : Install cibuildwheel & twine
133
+ run : python3 -m pip install twine cibuildwheel==2.21.3
134
+
135
+ - uses : actions/cache@v4
97
136
with :
98
- platforms : arm64
137
+ path : ${{ env.BUILD_DIR }}
138
+ key : ${{ env.KEY_HEAD }}-${{ env.KEY_C_BUILD }}-${{ env.KEY_LINUX_LIBS }}
139
+ env :
140
+ KEY_LINUX_LIBS : ${{ hashFiles('libheif/linux/**') }}
141
+ KEY_C_BUILD : ${{ hashFiles('libheif/linux_*.py') }}-${{ hashFiles('libheif/setup.py') }}
142
+
143
+ - name : Start test build
144
+ run : cibuildwheel
145
+ env :
146
+ CIBW_BUILD : ${{ format('cp39-{0}*', matrix.cibw_buildlinux) }}
147
+ CIBW_ARCHS : " x86_64"
148
+ CIBW_BEFORE_ALL_LINUX : |
149
+ ${{ env.INSTALL_OS_PACKAGES }}
150
+ python3 {package}/libheif/linux_build_libs.py
151
+ CIBW_ENVIRONMENT_LINUX : BUILD_DIR=/host${{ env.BUILD_DIR }} PH_LIGHT_ACTION=1
152
+ CIBW_BUILD_VERBOSITY : 1
153
+
154
+ - name : Checking built wheels
155
+ run : twine check wheelhouse/*
156
+
157
+ - name : Uploading wheels
158
+ uses : actions/upload-artifact@v3
159
+ with :
160
+ name : wheels
161
+ path : wheelhouse/*.whl
162
+ if-no-files-found : error
163
+
164
+ - name : Fix cache permissions
165
+ run : sudo chmod -R 777 ${{ env.BUILD_DIR }}
166
+
167
+ pi_heif_dependencies_linux_arm64 :
168
+ strategy :
169
+ fail-fast : true
170
+ matrix :
171
+ cibw_buildlinux : [ manylinux, musllinux ]
172
+ name : Pi-Heif • ARM64 • ${{ matrix.cibw_buildlinux }}
173
+ runs-on : ubuntu-24.04-arm
174
+ env :
175
+ KEY_HEAD : Pi-Heif-aarch64-${{ matrix.cibw_buildlinux }}
176
+ BUILD_DIR : " /tmp/ph_build_stuff"
177
+
178
+ steps :
179
+ - uses : actions/checkout@v4
180
+ - name : Transform to Pi-Heif
181
+ run : |
182
+ cp -r -v ./pi-heif/* .
183
+ python3 .github/transform_to-pi_heif.py
99
184
100
185
- name : Install cibuildwheel & twine
101
186
run : python3 -m pip install twine cibuildwheel==2.21.3
@@ -112,7 +197,7 @@ jobs:
112
197
run : cibuildwheel
113
198
env :
114
199
CIBW_BUILD : ${{ format('cp39-{0}*', matrix.cibw_buildlinux) }}
115
- CIBW_ARCHS : ${{ matrix.cibw_arch }}
200
+ CIBW_ARCHS : " aarch64 "
116
201
CIBW_BEFORE_ALL_LINUX : |
117
202
${{ env.INSTALL_OS_PACKAGES }}
118
203
python3 {package}/libheif/linux_build_libs.py
0 commit comments