Skip to content

Commit 263d09e

Browse files
committed
CI: Use github actions for Windows CI
+ Update actions + remove hardcoded qt path in project files (now rely on configured PATH, IncludePath, and LINK environment) + Clean outdated MSVC project versions Signed-off-by: Maxime Gervais <[email protected]>
1 parent f439ab2 commit 263d09e

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

53 files changed

+177
-9834
lines changed

.appveyor.yml

Lines changed: 0 additions & 25 deletions
This file was deleted.

.github/workflows/MediaConch_Checks.yml

Lines changed: 160 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -13,7 +13,7 @@ jobs:
1313
PYTHONPATH: /usr/local/lib/python2.7:/usr/local/lib/python2.7/dist-packages:/usr/local/lib/python2.7/site-packages
1414
steps:
1515
- name: Checkout
16-
uses: actions/checkout@v2
16+
uses: actions/checkout@v4
1717
with:
1818
fetch-depth: 1
1919
- name: Dependencies
@@ -26,17 +26,17 @@ jobs:
2626
pip --disable-pip-version-check install git+https://github.com/vi/mkvparse.git
2727
fi
2828
if [ "$RUNNER_OS" == "macOS" ]; then
29-
brew install libtool automake libxslt sqlite jansson libevent qt@5 sfk xmlstarlet ffmpeg
29+
brew install libtool automake libxslt jansson qt@5 sfk xmlstarlet ffmpeg
3030
sudo pip --disable-pip-version-check install --prefix /usr/local git+https://github.com/vi/mkvparse.git
3131
fi
3232
- name: Get ZenLib info
3333
id: zenlib-info
3434
run: |
35-
echo "::set-output name=hash::$(git ls-remote https://github.com/MediaArea/ZenLib.git HEAD | cut -f1)"
36-
echo "::set-output name=path::$(dirname $PWD)/ZenLib"
35+
echo "hash=$(git ls-remote https://github.com/MediaArea/ZenLib.git HEAD | cut -f1)" >> $GITHUB_OUTPUT
36+
echo "path=$(dirname $PWD)/ZenLib" >> $GITHUB_OUTPUT
3737
- name: ZenLib cache
3838
id: zenlib-cache
39-
uses: actions/cache@v2
39+
uses: actions/cache@v4
4040
with:
4141
path: ${{ steps.zenlib-info.outputs.path }}
4242
key: ${{ runner.os }}-ZenLib-${{ steps.zenlib-info.outputs.hash }}
@@ -52,11 +52,11 @@ jobs:
5252
- name: Get MediaInfoLib info
5353
id: mediainfolib-info
5454
run: |
55-
echo "::set-output name=hash::$(git ls-remote https://github.com/MediaArea/MediaInfoLib.git HEAD | cut -f1)"
56-
echo "::set-output name=path::$(dirname $PWD)/MediaInfoLib"
55+
echo "hash=$(git ls-remote https://github.com/MediaArea/MediaInfoLib.git HEAD | cut -f1)" >> $GITHUB_OUTPUT
56+
echo "path=$(dirname $PWD)/MediaInfoLib" >> $GITHUB_OUTPUT
5757
- name: MediaInfoLib cache
5858
id: mediainfolib-cache
59-
uses: actions/cache@v2
59+
uses: actions/cache@v4
6060
with:
6161
path: ${{ steps.mediainfolib-info.outputs.path }}
6262
key: ${{ runner.os }}-MediaInfoLib-${{ steps.mediainfolib-info.outputs.hash }}
@@ -96,3 +96,155 @@ jobs:
9696
cd Project/Qt
9797
export PATH=/usr/local/opt/qt/bin:$PATH
9898
make
99+
windows:
100+
strategy:
101+
matrix:
102+
include:
103+
- arch: Win32
104+
qt_ver: 5.15
105+
qt_arch: win32_msvc2019
106+
- arch: x64
107+
qt_ver: 5.15
108+
qt_arch: win64_msvc2019_64
109+
fail-fast: false
110+
name: Windows (${{ matrix.arch }})
111+
runs-on: windows-latest
112+
steps:
113+
- name: Set up Qt
114+
uses: jurplel/install-qt-action@v4
115+
with:
116+
version: ${{ matrix.qt_ver }}
117+
arch: ${{ matrix.qt_arch }}
118+
modules: qtwebengine
119+
- name: Get zlib info
120+
id: zlib-info
121+
run: |
122+
('hash=' + ((git ls-remote https://github.com/MediaArea/zlib.git HEAD) -Split "`t")[0]) | Out-File -FilePath $env:GITHUB_OUTPUT -Append
123+
('path=' + (Get-Location) + '\zlib') | Out-File -FilePath $env:GITHUB_OUTPUT -Append
124+
- name: zlib cache
125+
id: zlib-cache
126+
uses: actions/cache@v4
127+
with:
128+
path: ${{ steps.zlib-info.outputs.path }}
129+
key: windows-${{ matrix.arch }}-zlib-${{ steps.zlib-info.outputs.hash }}
130+
- name: Checkout zlib
131+
if: steps.zlib-cache.outputs.cache-hit != 'true'
132+
uses: actions/checkout@v4
133+
with:
134+
repository: MediaArea/zlib
135+
path: zlib
136+
- name: Get libxml2 info
137+
id: libxml2-info
138+
run: |
139+
('hash=' + ((git ls-remote https://github.com/MediaArea/libxml2.git HEAD) -Split "`t")[0]) | Out-File -FilePath $env:GITHUB_OUTPUT -Append
140+
('path=' + (Get-Location) + '\libxml2') | Out-File -FilePath $env:GITHUB_OUTPUT -Append
141+
- name: libxml2 cache
142+
id: libxml2-cache
143+
uses: actions/cache@v4
144+
with:
145+
path: ${{ steps.libxml2-info.outputs.path }}
146+
key: windows-${{ matrix.arch }}-libxml2-${{ steps.libxml2-info.outputs.hash }}
147+
- name: Checkout libxml2
148+
if: steps.libxml2-cache.outputs.cache-hit != 'true'
149+
uses: actions/checkout@v4
150+
with:
151+
repository: MediaArea/libxml2
152+
path: libxml2
153+
- name: Get libxslt info
154+
id: libxslt-info
155+
run: |
156+
('hash=' + ((git ls-remote https://github.com/MediaArea/libxslt.git HEAD) -Split "`t")[0]) | Out-File -FilePath $env:GITHUB_OUTPUT -Append
157+
('path=' + (Get-Location) + '\libxslt') | Out-File -FilePath $env:GITHUB_OUTPUT -Append
158+
- name: libxslt cache
159+
id: libxslt-cache
160+
uses: actions/cache@v4
161+
with:
162+
path: ${{ steps.libxslt-info.outputs.path }}
163+
key: windows-${{ matrix.arch }}-libxslt-${{ steps.libxslt-info.outputs.hash }}
164+
- name: Checkout libxslt
165+
if: steps.libxslt-cache.outputs.cache-hit != 'true'
166+
uses: actions/checkout@v4
167+
with:
168+
repository: MediaArea/libxslt
169+
path: libxslt
170+
- name: Get libevent info
171+
id: libevent-info
172+
run: |
173+
('hash=' + ((git ls-remote https://github.com/MediaArea/libevent.git HEAD) -Split "`t")[0]) | Out-File -FilePath $env:GITHUB_OUTPUT -Append
174+
('path=' + (Get-Location) + '\libevent') | Out-File -FilePath $env:GITHUB_OUTPUT -Append
175+
- name: libevent cache
176+
id: libevent-cache
177+
uses: actions/cache@v4
178+
with:
179+
path: ${{ steps.libevent-info.outputs.path }}
180+
key: windows-${{ matrix.arch }}-libevent-${{ steps.libevent-info.outputs.hash }}
181+
- name: Checkout libevent
182+
if: steps.libevent-cache.outputs.cache-hit != 'true'
183+
uses: actions/checkout@v4
184+
with:
185+
repository: MediaArea/libevent
186+
path: libevent
187+
- name: Get jansson info
188+
id: jansson-info
189+
run: |
190+
('hash=' + ((git ls-remote https://github.com/MediaArea/jansson.git HEAD) -Split "`t")[0]) | Out-File -FilePath $env:GITHUB_OUTPUT -Append
191+
('path=' + (Get-Location) + '\jansson') | Out-File -FilePath $env:GITHUB_OUTPUT -Append
192+
- name: jansson cache
193+
id: jansson-cache
194+
uses: actions/cache@v4
195+
with:
196+
path: ${{ steps.jansson-info.outputs.path }}
197+
key: windows-${{ matrix.arch }}-jansson-${{ steps.jansson-info.outputs.hash }}
198+
- name: Checkout jansson
199+
if: steps.jansson-cache.outputs.cache-hit != 'true'
200+
uses: actions/checkout@v4
201+
with:
202+
repository: MediaArea/jansson
203+
path: jansson
204+
- name: Get ZenLib info
205+
id: zenlib-info
206+
run: |
207+
('hash=' + ((git ls-remote https://github.com/MediaArea/ZenLib.git HEAD) -Split "`t")[0]) | Out-File -FilePath $env:GITHUB_OUTPUT -Append
208+
('path=' + (Get-Location) + '\ZenLib') | Out-File -FilePath $env:GITHUB_OUTPUT -Append
209+
- name: ZenLib cache
210+
id: zenlib-cache
211+
uses: actions/cache@v4
212+
with:
213+
path: ${{ steps.zenlib-info.outputs.path }}
214+
key: windows-${{ matrix.arch }}-zenlib-${{ steps.zenlib-info.outputs.hash }}
215+
- name: Checkout ZenLib
216+
if: steps.zenlib-cache.outputs.cache-hit != 'true'
217+
uses: actions/checkout@v4
218+
with:
219+
repository: MediaArea/ZenLib
220+
path: ZenLib
221+
- name: Get MediaInfoLib info
222+
id: mediainfolib-info
223+
run: |
224+
('hash=' + ((git ls-remote https://github.com/MediaArea/MediaInfoLib.git HEAD) -Split "`t")[0]) | Out-File -FilePath $env:GITHUB_OUTPUT -Append
225+
('path=' + (Get-Location) + '\MediaInfoLib') | Out-File -FilePath $env:GITHUB_OUTPUT -Append
226+
- name: MediaInfoLib cache
227+
id: mediainfolib-cache
228+
uses: actions/cache@v4
229+
with:
230+
path: ${{ steps.mediainfolib-info.outputs.path }}
231+
key: windows-${{ matrix.arch }}-mediainfolib-${{ steps.mediainfolib-info.outputs.hash }}
232+
- name: Checkout MediaInfoLib
233+
if: steps.mediainfolib-cache.outputs.cache-hit != 'true'
234+
uses: actions/checkout@v4
235+
with:
236+
repository: MediaArea/MediaInfoLib
237+
path: MediaInfoLib
238+
- name: Checkout MediaConch
239+
uses: actions/checkout@v4
240+
with:
241+
path: MediaConch
242+
- name: Add MSBuild to PATH
243+
uses: microsoft/setup-msbuild@v2
244+
with:
245+
msbuild-architecture: x64
246+
- name: Build
247+
run: |
248+
$Env:IncludePath="$Env:QT_ROOT_DIR\include\QtGui;$Env:QT_ROOT_DIR\include\QtWidgets;$Env:QT_ROOT_DIR\include\QtCore;$Env:QT_ROOT_DIR\include\QtWebEngine;$Env:QT_ROOT_DIR\include\QtWebEngineWidgets;$Env:QT_ROOT_DIR\include\QtWebEngineCore;$Env:QT_ROOT_DIR\include\QtWebChannel;$Env:QT_ROOT_DIR\include;$Env:IncludePath"
249+
$Env:LINK="/LIBPATH:$Env:QT_ROOT_DIR\lib"
250+
MSBuild /Verbosity:Quiet /p:Configuration=Release`;Platform=${{ matrix.arch }} MediaConch\Project\MSVC2022\MediaConch.sln

0 commit comments

Comments
 (0)