@@ -3,96 +3,140 @@ name: Checks
33on : [push, pull_request]
44
55jobs :
6- unix :
6+ windows :
77 strategy :
88 matrix :
9- os : [ubuntu-latest, macos-latest ]
9+ arch : [Win32, x64 ]
1010 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
11+ name : Windows (${{ matrix.arch }})
12+ runs-on : windows-latest
1413 steps :
15- - name : Checkout
14+ - name : Get zlib info
15+ id : zlib-info
16+ run : |
17+ ('hash=' + ((git ls-remote https://github.com/MediaArea/zlib.git HEAD) -Split '`t')[0]) | Out-File -FilePath $env:GITHUB_OUTPUT -Append
18+ ('path=' + (Get-Location) + '\zlib') | Out-File -FilePath $env:GITHUB_OUTPUT -Append
19+ - name : zlib cache
20+ id : zlib-cache
21+ uses : actions/cache@v4
22+ with :
23+ path : ${{ steps.zlib-info.outputs.path }}
24+ key : windows-${{ matrix.arch }}-zlib-${{ steps.zlib-info.outputs.hash }}
25+ - name : Checkout zlib
26+ if : steps.zlib-cache.outputs.cache-hit != 'true'
27+ uses : actions/checkout@v4
28+ with :
29+ repository : MediaArea/zlib
30+ path : zlib
31+ - name : Get libxml2 info
32+ id : libxml2-info
33+ run : |
34+ ('hash=' + ((git ls-remote https://github.com/MediaArea/libxml2.git HEAD) -Split '`t')[0]) | Out-File -FilePath $env:GITHUB_OUTPUT -Append
35+ ('path=' + (Get-Location) + '\libxml2') | Out-File -FilePath $env:GITHUB_OUTPUT -Append
36+ - name : libxml2 cache
37+ id : libxml2-cache
38+ uses : actions/cache@v4
39+ with :
40+ path : ${{ steps.libxml2-info.outputs.path }}
41+ key : windows-${{ matrix.arch }}-libxml2-${{ steps.libxml2-info.outputs.hash }}
42+ - name : Checkout libxml2
43+ if : steps.libxml2-cache.outputs.cache-hit != 'true'
1644 uses : actions/checkout@v4
1745 with :
18- fetch-depth : 1
19- - name : Dependencies
46+ repository : MediaArea/libxml2
47+ path : libxml2
48+ - name : Get libxslt info
49+ id : libxslt-info
2050 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
51+ ('hash=' + ((git ls-remote https://github.com/MediaArea/libxslt.git HEAD) -Split '`t')[0]) | Out-File -FilePath $env:GITHUB_OUTPUT -Append
52+ ('path=' + (Get-Location) + '\libxslt') | Out-File -FilePath $env:GITHUB_OUTPUT -Append
53+ - name : libxslt cache
54+ id : libxslt-cache
55+ uses : actions/cache@v4
56+ with :
57+ path : ${{ steps.libxslt-info.outputs.path }}
58+ key : windows-${{ matrix.arch }}-libxslt-${{ steps.libxslt-info.outputs.hash }}
59+ - name : Checkout libxslt
60+ if : steps.libxslt-cache.outputs.cache-hit != 'true'
61+ uses : actions/checkout@v4
62+ with :
63+ repository : MediaArea/libxslt
64+ path : libxslt
65+ - name : Get libevent info
66+ id : libevent-info
67+ run : |
68+ ('hash=' + ((git ls-remote https://github.com/MediaArea/libevent.git HEAD) -Split '`t')[0]) | Out-File -FilePath $env:GITHUB_OUTPUT -Append
69+ ('path=' + (Get-Location) + '\libevent') | Out-File -FilePath $env:GITHUB_OUTPUT -Append
70+ - name : libevent cache
71+ id : libevent-cache
72+ uses : actions/cache@v4
73+ with :
74+ path : ${{ steps.libevent-info.outputs.path }}
75+ key : windows-${{ matrix.arch }}-libevent-${{ steps.libevent-info.outputs.hash }}
76+ - name : Checkout libevent
77+ if : steps.libevent-cache.outputs.cache-hit != 'true'
78+ uses : actions/checkout@v4
79+ with :
80+ repository : MediaArea/libevent
81+ path : libevent
82+ - name : Get jansson info
83+ id : jansson-info
84+ run : |
85+ ('hash=' + ((git ls-remote https://github.com/MediaArea/jansson.git HEAD) -Split '`t')[0]) | Out-File -FilePath $env:GITHUB_OUTPUT -Append
86+ ('path=' + (Get-Location) + '\jansson') | Out-File -FilePath $env:GITHUB_OUTPUT -Append
87+ - name : jansson cache
88+ id : jansson-cache
89+ uses : actions/cache@v4
90+ with :
91+ path : ${{ steps.jansson-info.outputs.path }}
92+ key : windows-${{ matrix.arch }}-jansson-${{ steps.jansson-info.outputs.hash }}
93+ - name : Checkout jansson
94+ if : steps.jansson-cache.outputs.cache-hit != 'true'
95+ uses : actions/checkout@v4
96+ with :
97+ repository : MediaArea/jansson
98+ path : jansson
3299 - name : Get ZenLib info
33100 id : zenlib-info
34101 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
102+ (' hash=' + (( git ls-remote https://github.com/MediaArea/ZenLib.git HEAD) -Split '`t')[0]) | Out-File -FilePath $env: GITHUB_OUTPUT -Append
103+ (' path=' + (Get-Location) + '\ ZenLib') | Out-File -FilePath $env: GITHUB_OUTPUT -Append
37104 - name : ZenLib cache
38105 id : zenlib-cache
39106 uses : actions/cache@v4
40107 with :
41108 path : ${{ steps.zenlib-info.outputs.path }}
42- key : ${{ runner.os }}-ZenLib -${{ steps.zenlib-info.outputs.hash }}
43- - name : ZenLib
109+ key : windows- ${{ matrix.arch }}-zenlib -${{ steps.zenlib-info.outputs.hash }}
110+ - name : Checkout ZenLib
44111 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
112+ uses : actions/checkout@v4
113+ with :
114+ repository : MediaArea/ZenLib
115+ path : ZenLib
52116 - name : Get MediaInfoLib info
53117 id : mediainfolib-info
54118 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
119+ (' hash=' + (( git ls-remote https://github.com/MediaArea/MediaInfoLib.git HEAD) -Split '`t')[0]) | Out-File -FilePath $env: GITHUB_OUTPUT -Append
120+ (' path=' + (Get-Location) + '\ MediaInfoLib') | Out-File -FilePath $env: GITHUB_OUTPUT -Append
57121 - name : MediaInfoLib cache
58122 id : mediainfolib-cache
59123 uses : actions/cache@v4
60124 with :
61125 path : ${{ steps.mediainfolib-info.outputs.path }}
62- key : ${{ runner.os }}-MediaInfoLib -${{ steps.mediainfolib-info.outputs.hash }}
63- - name : MediaInfoLib
126+ key : windows- ${{ matrix.arch }}-mediainfolib -${{ steps.mediainfolib-info.outputs.hash }}
127+ - name : Checkout MediaInfoLib
64128 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
129+ uses : actions/checkout@v4
130+ with :
131+ repository : MediaArea /MediaInfoLib
132+ path : MediaInfoLib
133+ - name : Checkout MediaConch
134+ uses : actions/checkout@v4
135+ with :
136+ path : MediaConch
137+ - name : Add MSBuild to PATH
138+ uses : microsoft/setup-msbuild@v2
139+ with :
140+ msbuild-architecture : x64
77141 - name : Build
78- 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
142+ run : MSBuild /verbosity:quiet /p:Configuration=Release`;Platform=${{ matrix.arch }} MediaConch\Project\MSVC2022\MediaConch.sln
0 commit comments