@@ -3,96 +3,156 @@ name: Checks
33on : [push, pull_request]
44
55jobs :
6- unix :
6+ windows :
77 strategy :
88 matrix :
9- os : [ubuntu-latest, macos-latest]
9+ include :
10+ - arch : Win32
11+ qt_ver : 5.15
12+ qt_arch : win64_msvc2019_64
13+ - arch : x64
14+ qt_ver : 5.15
15+ qt_arch : win32_msvc2019
1016 fail-fast : false
11- runs-on : ${{ matrix.os }}
12- env :
13- PYTHONPATH : /usr/local/lib/python2.7:/usr/local/lib/python2.7/dist-packages:/usr/local/lib/python2.7/site-packages
17+ name : Windows (${{ matrix.arch }})
18+ runs-on : windows-latest
1419 steps :
15- - name : Checkout
20+ - name : Set up Qt
21+ uses : jurplel/install-qt-action@v4
22+ with :
23+ version : ${{ matrix.qt_ver }}
24+ arch : ${{ matrix.qt_arch }}
25+ modules : qtwebengine
26+ - name : Get zlib info
27+ id : zlib-info
28+ run : |
29+ ls $Env:QT_ROOT_DIR\lib
30+ ('hash=' + ((git ls-remote https://github.com/MediaArea/zlib.git HEAD) -Split "`t")[0]) | Out-File -FilePath $env:GITHUB_OUTPUT -Append
31+ ('path=' + (Get-Location) + '\zlib') | Out-File -FilePath $env:GITHUB_OUTPUT -Append
32+ - name : zlib cache
33+ id : zlib-cache
34+ uses : actions/cache@v4
35+ with :
36+ path : ${{ steps.zlib-info.outputs.path }}
37+ key : windows-${{ matrix.arch }}-zlib-${{ steps.zlib-info.outputs.hash }}
38+ - name : Checkout zlib
39+ if : steps.zlib-cache.outputs.cache-hit != 'true'
40+ uses : actions/checkout@v4
41+ with :
42+ repository : MediaArea/zlib
43+ path : zlib
44+ - name : Get libxml2 info
45+ id : libxml2-info
46+ run : |
47+ ('hash=' + ((git ls-remote https://github.com/MediaArea/libxml2.git HEAD) -Split "`t")[0]) | Out-File -FilePath $env:GITHUB_OUTPUT -Append
48+ ('path=' + (Get-Location) + '\libxml2') | Out-File -FilePath $env:GITHUB_OUTPUT -Append
49+ - name : libxml2 cache
50+ id : libxml2-cache
51+ uses : actions/cache@v4
52+ with :
53+ path : ${{ steps.libxml2-info.outputs.path }}
54+ key : windows-${{ matrix.arch }}-libxml2-${{ steps.libxml2-info.outputs.hash }}
55+ - name : Checkout libxml2
56+ if : steps.libxml2-cache.outputs.cache-hit != 'true'
57+ uses : actions/checkout@v4
58+ with :
59+ repository : MediaArea/libxml2
60+ path : libxml2
61+ - name : Get libxslt info
62+ id : libxslt-info
63+ run : |
64+ ('hash=' + ((git ls-remote https://github.com/MediaArea/libxslt.git HEAD) -Split "`t")[0]) | Out-File -FilePath $env:GITHUB_OUTPUT -Append
65+ ('path=' + (Get-Location) + '\libxslt') | Out-File -FilePath $env:GITHUB_OUTPUT -Append
66+ - name : libxslt cache
67+ id : libxslt-cache
68+ uses : actions/cache@v4
69+ with :
70+ path : ${{ steps.libxslt-info.outputs.path }}
71+ key : windows-${{ matrix.arch }}-libxslt-${{ steps.libxslt-info.outputs.hash }}
72+ - name : Checkout libxslt
73+ if : steps.libxslt-cache.outputs.cache-hit != 'true'
74+ uses : actions/checkout@v4
75+ with :
76+ repository : MediaArea/libxslt
77+ path : libxslt
78+ - name : Get libevent info
79+ id : libevent-info
80+ run : |
81+ ('hash=' + ((git ls-remote https://github.com/MediaArea/libevent.git HEAD) -Split "`t")[0]) | Out-File -FilePath $env:GITHUB_OUTPUT -Append
82+ ('path=' + (Get-Location) + '\libevent') | Out-File -FilePath $env:GITHUB_OUTPUT -Append
83+ - name : libevent cache
84+ id : libevent-cache
85+ uses : actions/cache@v4
86+ with :
87+ path : ${{ steps.libevent-info.outputs.path }}
88+ key : windows-${{ matrix.arch }}-libevent-${{ steps.libevent-info.outputs.hash }}
89+ - name : Checkout libevent
90+ if : steps.libevent-cache.outputs.cache-hit != 'true'
1691 uses : actions/checkout@v4
1792 with :
18- fetch-depth : 1
19- - name : Dependencies
93+ repository : MediaArea/libevent
94+ path : libevent
95+ - name : Get jansson info
96+ id : jansson-info
2097 run : |
21- if [ "$RUNNER_OS" == "Linux" ]; then
22- sudo apt-get update
23- sudo apt-get install -y zlib1g-dev libxml2-dev libxslt-dev libcurl4-gnutls-dev libsqlite3-dev libjansson-dev libevent-dev libxml2-utils qtbase5-dev qtwebengine5-dev qt5-qmake xmlstarlet ffmpeg sshpass
24- sudo curl -L http://stahlworks.com/dev/sfk/sfk-linux-64.exe -o /usr/local/bin/sfk
25- sudo chmod +x /usr/local/bin/sfk
26- pip --disable-pip-version-check install git+https://github.com/vi/mkvparse.git
27- fi
28- if [ "$RUNNER_OS" == "macOS" ]; then
29- brew install libtool automake libxslt jansson qt@5 sfk xmlstarlet ffmpeg
30- sudo pip --disable-pip-version-check install --prefix /usr/local git+https://github.com/vi/mkvparse.git
31- fi
98+ ('hash=' + ((git ls-remote https://github.com/MediaArea/jansson.git HEAD) -Split "`t")[0]) | Out-File -FilePath $env:GITHUB_OUTPUT -Append
99+ ('path=' + (Get-Location) + '\jansson') | Out-File -FilePath $env:GITHUB_OUTPUT -Append
100+ - name : jansson cache
101+ id : jansson-cache
102+ uses : actions/cache@v4
103+ with :
104+ path : ${{ steps.jansson-info.outputs.path }}
105+ key : windows-${{ matrix.arch }}-jansson-${{ steps.jansson-info.outputs.hash }}
106+ - name : Checkout jansson
107+ if : steps.jansson-cache.outputs.cache-hit != 'true'
108+ uses : actions/checkout@v4
109+ with :
110+ repository : MediaArea/jansson
111+ path : jansson
32112 - name : Get ZenLib info
33113 id : zenlib-info
34114 run : |
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
115+ (' hash=' + (( git ls-remote https://github.com/MediaArea/ZenLib.git HEAD) -Split "`t")[0]) | Out-File -FilePath $env: GITHUB_OUTPUT -Append
116+ (' path=' + (Get-Location) + '\ ZenLib') | Out-File -FilePath $env: GITHUB_OUTPUT -Append
37117 - name : ZenLib cache
38118 id : zenlib-cache
39119 uses : actions/cache@v4
40120 with :
41121 path : ${{ steps.zenlib-info.outputs.path }}
42- key : ${{ runner.os }}-ZenLib -${{ steps.zenlib-info.outputs.hash }}
43- - name : ZenLib
122+ key : windows- ${{ matrix.arch }}-zenlib -${{ steps.zenlib-info.outputs.hash }}
123+ - name : Checkout ZenLib
44124 if : steps.zenlib-cache.outputs.cache-hit != 'true'
45- run : |
46- git -C .. clone --depth=1 https://github.com/MediaArea/ZenLib.git
47- pushd ../ZenLib/Project/GNU/Library
48- autoreconf -if
49- ./configure --enable-static
50- make
51- popd
125+ uses : actions/checkout@v4
126+ with :
127+ repository : MediaArea/ZenLib
128+ path : ZenLib
52129 - name : Get MediaInfoLib info
53130 id : mediainfolib-info
54131 run : |
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
132+ (' hash=' + (( git ls-remote https://github.com/MediaArea/MediaInfoLib.git HEAD) -Split "`t")[0]) | Out-File -FilePath $env: GITHUB_OUTPUT -Append
133+ (' path=' + (Get-Location) + '\ MediaInfoLib') | Out-File -FilePath $env: GITHUB_OUTPUT -Append
57134 - name : MediaInfoLib cache
58135 id : mediainfolib-cache
59136 uses : actions/cache@v4
60137 with :
61138 path : ${{ steps.mediainfolib-info.outputs.path }}
62- key : ${{ runner.os }}-MediaInfoLib -${{ steps.mediainfolib-info.outputs.hash }}
63- - name : MediaInfoLib
139+ key : windows- ${{ matrix.arch }}-mediainfolib -${{ steps.mediainfolib-info.outputs.hash }}
140+ - name : Checkout MediaInfoLib
64141 if : steps.mediainfolib-cache.outputs.cache-hit != 'true'
65- run : |
66- git -C .. clone --depth=1 https://github.com/MediaArea/MediaInfoLib.git
67- pushd .. /MediaInfoLib/Project/GNU/Library
68- autoreconf -if
69- ./configure --enable-static
70- make
71- popd
72- - name : Configure
73- run : |
74- cd Project/GNU/CLI
75- autoreconf -if
76- ./configure
142+ uses : actions/checkout@v4
143+ with :
144+ repository : MediaArea /MediaInfoLib
145+ path : MediaInfoLib
146+ - name : Checkout MediaConch
147+ uses : actions/checkout@v4
148+ with :
149+ path : MediaConch
150+ - name : Add MSBuild to PATH
151+ uses : microsoft/setup-msbuild@v2
152+ with :
153+ msbuild-architecture : x64
77154 - name : Build
78155 run : |
79- cd Project/GNU/CLI
80- make
81- - name : Check files
82- run : |
83- cd Project/GNU/CLI
84- make clone_sample_files
85- - name : Check
86- run : |
87- cd Project/GNU/CLI
88- make check
89- - name : Configure GUI
90- run : |
91- cd Project/Qt
92- export PATH=/opt/homebrew/opt/qt@5/bin:$PATH
93- ./prepare CONFIG+=c++11 -after QMAKE_MACOSX_DEPLOYMENT_TARGET=10.9 QMAKE_LFLAGS-=-Wl,-ld_classic
94- - name : Build GUI
95- run : |
96- cd Project/Qt
97- export PATH=/usr/local/opt/qt/bin:$PATH
98- make
156+ $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"
157+ $Env:LINK="/LIBPATH:$Env:QT_ROOT_DIR\lib"
158+ MSBuild /p:Configuration=Release`;Platform=${{ matrix.arch }} MediaConch\Project\MSVC2022\MediaConch.sln
0 commit comments