-
Notifications
You must be signed in to change notification settings - Fork 17
128 lines (109 loc) · 3.89 KB
/
test-src-build-windows.yml
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
name: From source(Windows)
on:
workflow_dispatch:
workflow_call:
pull_request:
paths:
- '.github/workflows/test-src-build-windows.yml'
- 'libheif/windows/**'
- 'libheif/heif.h'
- 'setup.*'
- 'pyproject.toml'
- 'pi-heif/libheif/windows/**'
- 'pi-heif/setup.cfg'
- 'pillow_heif/_pillow_heif.c'
push:
branches: [master]
paths:
- '.github/workflows/test-src-build-windows.yml'
- 'libheif/windows/**'
- 'libheif/heif.h'
- 'setup.*'
- 'pyproject.toml'
- 'pi-heif/libheif/windows/**'
- 'pi-heif/setup.cfg'
- 'pillow_heif/_pillow_heif.c'
concurrency:
group: src_windows-${{ github.ref }}
cancel-in-progress: true
jobs:
full_windows_2019:
name: Windows:2019-x86_64
runs-on: windows-2019
env:
MSYS2_PREFIX: "C:/temp/msys64/mingw64"
PH_FULL_ACTION: 1
EXP_PH_LIBHEIF_VERSION: ""
steps:
- uses: actions/checkout@v4
- uses: actions/setup-python@v4
with:
python-version: '3.11'
- uses: msys2/setup-msys2@v2
with:
location: C:/temp
install: >-
mingw-w64-x86_64-binutils
- name: Build libheif and dependencies
shell: msys2 {0}
run: |
cd libheif/windows/mingw-w64-libheif
makepkg-mingw --syncdeps --noconfirm -f
pacman -U mingw-w64-x86_64-libheif-*-any.pkg.tar.zst --noconfirm
- name: Installing Pillow-Heif
run: python -m pip -v install ".[dev]"
- name: Copy DLLs from MSYS2
run: |
$site_packages=(python -c 'import sysconfig; print(sysconfig.get_paths()[\"platlib\"])')
cp ${{ env.MSYS2_PREFIX }}/bin/libheif.dll $site_packages/
cp ${{ env.MSYS2_PREFIX }}/bin/libde265-0.dll $site_packages/
cp ${{ env.MSYS2_PREFIX }}/bin/libx265.dll $site_packages/
cp ${{ env.MSYS2_PREFIX }}/bin/libaom.dll $site_packages/
cp ${{ env.MSYS2_PREFIX }}/bin/libwinpthread-1.dll $site_packages/
cp ${{ env.MSYS2_PREFIX }}/bin/libgcc_s_seh-1.dll $site_packages/
cp ${{ env.MSYS2_PREFIX }}/bin/libstdc++-6.dll $site_packages/
- name: LibHeif info
run: python -c "import pillow_heif; print(pillow_heif.libheif_info())"
- name: Perform tests
run: python -m pytest
lite_windows_2019:
name: Windows:2019-x86_64(Pi-Heif)
runs-on: windows-2019
env:
MSYS2_PREFIX: "C:/temp/msys64/mingw64"
PH_LIGHT_ACTION: 1
EXP_PH_LIBHEIF_VERSION: ""
steps:
- uses: actions/checkout@v4
- uses: actions/setup-python@v4
with:
python-version: '3.10'
- name: Transform to Pi-Heif
run: |
cp -r -v -force ./pi-heif/* .
python3 .github/transform_to-pi_heif.py
- uses: msys2/setup-msys2@v2
with:
location: C:/temp
install: >-
mingw-w64-x86_64-binutils
- name: Build libheif and dependencies
shell: msys2 {0}
run: |
cd libheif/windows/mingw-w64-libheif
makepkg-mingw --syncdeps --noconfirm -f
pacman -U mingw-w64-x86_64-libheif-*-any.pkg.tar.zst --noconfirm
- name: Installing Pi-Heif
run: python -m pip -v install ".[tests]"
- name: Copy DLLs from MSYS2
run: |
$site_packages=(python -c 'import sysconfig; print(sysconfig.get_paths()[\"platlib\"])')
cp ${{ env.MSYS2_PREFIX }}/bin/libheif.dll $site_packages/
cp ${{ env.MSYS2_PREFIX }}/bin/libde265-0.dll $site_packages/
cp ${{ env.MSYS2_PREFIX }}/bin/libwinpthread-1.dll $site_packages/
cp ${{ env.MSYS2_PREFIX }}/bin/libgcc_s_seh-1.dll $site_packages/
cp ${{ env.MSYS2_PREFIX }}/bin/libstdc++-6.dll $site_packages/
- name: LibHeif info
run: python -c "import pi_heif; print(pi_heif.libheif_info())"
- name: Perform tests
run: python -m pytest