@@ -51,194 +51,193 @@ jobs:
5151 # make -j $(sysctl -n hw.logicalcpu)
5252 # - name: Run Unittests
5353 # run: $GITHUB_WORKSPACE/build/YUViewUnitTest/YUViewUnitTest
54- build-linux-mac :
55- runs-on : ${{ matrix.os }}
56- strategy :
57- matrix :
58- os : [ubuntu-22.04, macos-13, macos-15]
59- steps :
60- - uses : actions/checkout@v4
61- with :
62- submodules : true
63- - run : git fetch --prune --unshallow
64- - name : Set artifact name
65- id : artifacts
66- shell : bash
67- run : |
68- echo "qt=qtBase-6-9-0-${{ matrix.os }}" >> "$GITHUB_OUTPUT"
69- echo "outputZip=YUView-${{ matrix.os }}.zip" >> "$GITHUB_OUTPUT"
70- - name : Install Qt base
71- run : |
72- cd ../../
73- mkdir -p YUViewQt/YUViewQt
74- cd YUViewQt/YUViewQt
75- curl -L https://github.com/ChristianFeldmann/YUViewQt/releases/download/QtBase-6.9.0/${{steps.artifacts.outputs.qt}}.zip -o Qt.zip
76- unzip -qa Qt.zip
77- echo "$GITHUB_WORKSPACE/../../YUViewQt/YUViewQt/Qt/bin" >> $GITHUB_PATH
78- shell : bash
79- - name : Install Linuxdeployqt
80- if : runner.os == 'Linux'
81- run : |
82- curl -L https://github.com/probonopd/linuxdeployqt/releases/download/continuous/linuxdeployqt-continuous-x86_64.AppImage -o linuxdeployqt-6-x86_64.AppImage
83- chmod a+x linuxdeployqt-6-x86_64.AppImage
84- - name : Install Linux packages
85- if : runner.os == 'Linux'
86- run : |
87- sudo apt-get update
88- sudo apt-get install libgl1-mesa-dev libxkbcommon-x11-0 libpcre2-16-0 '^libxcb.*-dev' libx11-xcb-dev libglu1-mesa-dev libxi-dev libxkbcommon-dev libxkbcommon-x11-dev libatspi2.0-dev libfuse2
89- - name : Download libde265 (Linux)
90- if : runner.os == 'Linux'
91- run : curl -L https://github.com/ChristianFeldmann/libde265/releases/download/v1.1/libde265.so -o libde265-internals.so
92- - name : Download libde265 (Mac)
93- if : runner.os == 'macOS'
94- run : curl -L https://github.com/ChristianFeldmann/libde265/releases/download/v1.1/libde265.dylib -o libde265-internals.dylib
95- - name : Download libde265 license file
96- run : curl -L https://raw.githubusercontent.com/ChristianFeldmann/libde265/master/COPYING -o libde265License.txt
97- shell : bash
98- - name : Build (Qmake + Make)
99- run : |
100- cd $GITHUB_WORKSPACE
101- export PATH=$GITHUB_WORKSPACE/../../YUViewQt/YUViewQt/Qt/bin:$PATH
102- mkdir build
103- cd build
104- qmake CONFIG+=UNITTESTS ..
105- make -j 4
106- - name : Run Unittests
107- run : $GITHUB_WORKSPACE/build/YUViewUnitTest/YUViewUnitTest
108- - name : Build App (Mac)
109- if : runner.os == 'macOS'
110- run : |
111- macdeployqt build/YUViewApp/YUView.app -always-overwrite -verbose=2
112- cp libde265-internals.dylib build/YUViewApp/YUView.app/Contents/MacOS/.
113- cd build/YUViewApp
114- # Zip
115- zip -r ${{steps.artifacts.outputs.outputZip}} YUView.app/
116- mkdir $GITHUB_WORKSPACE/artifacts
117- cp ${{steps.artifacts.outputs.outputZip}} $GITHUB_WORKSPACE/artifacts/
118- - name : Build Appimage (Linux)
119- if : runner.os == 'Linux'
120- run : |
121- cd build
122- make INSTALL_ROOT=appdir install
123- $GITHUB_WORKSPACE/linuxdeployqt-6-x86_64.AppImage YUViewApp/appdir/usr/local/share/applications/de.rwth_aachen.ient.YUView.desktop -appimage -bundle-non-qt-libs -verbose=2
124- mv YUView-*.AppImage YUView.AppImage
125- mkdir $GITHUB_WORKSPACE/artifacts
126- cp YUView.AppImage $GITHUB_WORKSPACE/artifacts/
127- - name : Upload Artifact
128- uses : actions/upload-artifact@v4
129- with :
130- name : ${{steps.artifacts.outputs.outputZip}}
131- path : artifacts
132- - name : Release
133- uses : softprops/action-gh-release@v1
134- if : startsWith(github.ref, 'refs/tags/')
135- with :
136- files : artifacts/${{steps.artifacts.outputs.outputZip}}
137- # build-windows:
54+ # build-linux-mac:
13855 # runs-on: ${{ matrix.os }}
13956 # strategy:
14057 # matrix:
141- # include:
142- # - os: windows-2019
143- # auto_update: true
144- # ARTIFACT_NAME: YUView-Win2019.zip
145- # QT_FILE: qtBase_6.7.2_win2019.zip
146- # - os: windows-2019
147- # auto_update: false
148- # ARTIFACT_NAME: YUView-Win2019-noautoupdate.zip
149- # QT_FILE: qtBase_6.7.2_win2019.zip
58+ # os: [ubuntu-22.04, macos-13, macos-15]
15059 # steps:
15160 # - uses: actions/checkout@v4
15261 # with:
15362 # submodules: true
154- # - uses: ilammy/msvc-dev-cmd@v1
15563 # - run: git fetch --prune --unshallow
64+ # - name: Set artifact name
65+ # id: artifacts
66+ # shell: bash
67+ # run: |
68+ # echo "qt=qtBase-6-9-0-${{ matrix.os }}" >> "$GITHUB_OUTPUT"
69+ # echo "outputZip=YUView-${{ matrix.os }}.zip" >> "$GITHUB_OUTPUT"
15670 # - name: Install Qt base
15771 # run: |
15872 # cd ../../
15973 # mkdir -p YUViewQt/YUViewQt
16074 # cd YUViewQt/YUViewQt
161- # curl -L https://github.com/ChristianFeldmann/YUViewQt/releases/download/QtBase-6.7.2/${{matrix.QT_FILE}} -o Qt.zip
162- # 7z x Qt.zip
163- # echo "${{ github.workspace }}\..\..\YUViewQt\YUViewQt\Qt\bin" | Out-File -FilePath $env:GITHUB_PATH -Encoding utf8 -Append
164- # - name: Install libde265
165- # run: |
166- # curl -L https://github.com/ChristianFeldmann/libde265/releases/download/v1.1/libde265.dll -o libde265.dll
167- # curl -L https://raw.githubusercontent.com/ChristianFeldmann/libde265/master/COPYING -o libde265License.txt
168- # - name: Install jom
75+ # curl -L https://github.com/ChristianFeldmann/YUViewQt/releases/download/QtBase-6.9.0/${{steps.artifacts.outputs.qt}}.zip -o Qt.zip
76+ # unzip -qa Qt.zip
77+ # echo "$GITHUB_WORKSPACE/../../YUViewQt/YUViewQt/Qt/bin" >> $GITHUB_PATH
78+ # shell: bash
79+ # - name: Install Linuxdeployqt
80+ # if: runner.os == 'Linux'
16981 # run: |
170- # choco install jom
171- # - name: Install openSSL
82+ # curl -L https://github.com/probonopd/linuxdeployqt/releases/download/continuous/linuxdeployqt-continuous-x86_64.AppImage -o linuxdeployqt-6-x86_64.AppImage
83+ # chmod a+x linuxdeployqt-6-x86_64.AppImage
84+ # - name: Install Linux packages
85+ # if: runner.os == 'Linux'
17286 # run: |
173- # mkdir openSSL
174- # cd openSSL
175- # curl -L https://github.com/ChristianFeldmann/YUViewQt/releases/download/openSSL1.1.1w/openSSL_1_1_1w_win2019.zip -o openSSL.zip
176- # 7z x openSSL.zip
177- # cd ..
178- # - name: Activate auto update
179- # run: sed -i -- "s/#define UPDATE_FEATURE_ENABLE 0/#define UPDATE_FEATURE_ENABLE 1/g" YUViewLib/src/common/Typedef.h
87+ # sudo apt-get update
88+ # sudo apt-get install libgl1-mesa-dev libxkbcommon-x11-0 libpcre2-16-0 '^libxcb.*-dev' libx11-xcb-dev libglu1-mesa-dev libxi-dev libxkbcommon-dev libxkbcommon-x11-dev libatspi2.0-dev libfuse2
89+ # - name: Download libde265 (Linux)
90+ # if: runner.os == 'Linux'
91+ # run: curl -L https://github.com/ChristianFeldmann/libde265/releases/download/v1.1/libde265.so -o libde265-internals.so
92+ # - name: Download libde265 (Mac)
93+ # if: runner.os == 'macOS'
94+ # run: curl -L https://github.com/ChristianFeldmann/libde265/releases/download/v1.1/libde265.dylib -o libde265-internals.dylib
95+ # - name: Download libde265 license file
96+ # run: curl -L https://raw.githubusercontent.com/ChristianFeldmann/libde265/master/COPYING -o libde265License.txt
18097 # shell: bash
181- # if: matrix.auto_update == true
182- # - name: Build
98+ # - name: Build (Qmake + Make)
18399 # run: |
184- # echo "Creating Build dir and entering it"
100+ # cd $GITHUB_WORKSPACE
101+ # export PATH=$GITHUB_WORKSPACE/../../YUViewQt/YUViewQt/Qt/bin:$PATH
185102 # mkdir build
186103 # cd build
187- # echo "Qmake Version:"
188- # d:\a\YUViewQt\YUViewQt\Qt\bin\qmake --version
189- # echo "Executing qmake..."
190- # d:\a\YUViewQt\YUViewQt\Qt\bin\qmake CONFIG+=UNITTESTS ..
191- # echo "Executing jom:"
192- # jom
104+ # qmake CONFIG+=UNITTESTS ..
105+ # make -j 4
193106 # - name: Run Unittests
194- # run: D:\a\YUView\YUView\build\YUViewUnitTest\YUViewUnitTest
195- # - name: WindeployQT
107+ # run: $GITHUB_WORKSPACE/build/YUViewUnitTest/YUViewUnitTest
108+ # - name: Build App (Mac)
109+ # if: runner.os == 'macOS'
196110 # run: |
197- # mkdir deploy
198- # cd deploy
199- # cp ../build/YUViewApp/YUView.exe .
200- # d:\a\YUViewQt\YUViewQt\Qt\bin\windeployqt.exe --release --no-compiler-runtime YUView.exe
201- # cp ../openSSL/*.dll .
202- # mkdir decoder
203- # cp ..\libde265.dll decoder
204- # cp ..\libde265License.txt decoder
205- # cp ../LICENSE.GPL3 .
206- # cd ..
207- # python deployment/versioning.py -d deploy -o deploy/versioninfo.txt
208- # mkdir artifacts
209- # 7z a artifacts/YUView-Win.zip ./deploy/*
210- # - name: Wix Windows
111+ # macdeployqt build/YUViewApp/YUView.app -always-overwrite -verbose=2
112+ # cp libde265-internals.dylib build/YUViewApp/YUView.app/Contents/MacOS/.
113+ # cd build/YUViewApp
114+ # # Zip
115+ # zip -r ${{steps.artifacts.outputs.outputZip}} YUView.app/
116+ # mkdir $GITHUB_WORKSPACE/artifacts
117+ # cp ${{steps.artifacts.outputs.outputZip}} $GITHUB_WORKSPACE/artifacts/
118+ # - name: Build Appimage (Linux)
119+ # if: runner.os == 'Linux'
211120 # run: |
212- # cd ${{ github.workspace }}/deployment/wix
213- # cp 'C:\Program Files (x86)\Microsoft Visual Studio\2019\Enterprise\VC\Redist\MSVC\v142\MergeModules\Microsoft_VC142_CRT_x64.msm' .
214- # & "C:\Program Files (x86)\WiX Toolset v3.14\bin\heat.exe" dir ../../deploy -gg -dr APPLICATIONFOLDER -srd -sreg -cg YUViewComponents -out harvestedDirectory.wxs
215- # & "C:\Program Files (x86)\WiX Toolset v3.14\bin\candle.exe" -dConfiguration=Release -dOutDir=bin/Release/ '-dTargetExt=.msi' '-dTargetFileName=YUViewSetup.msi' -dTargetName=YUViewSetup -out obj/Release/ -arch x64 -ext "C:\Program Files (x86)\WiX Toolset v3.14\bin\WixUIExtension.dll" YUView.wxs
216- # & "C:\Program Files (x86)\WiX Toolset v3.14\bin\candle.exe" -dConfiguration=Release -dOutDir=bin/Release/ '-dTargetExt=.msi' '-dTargetFileName=YUViewSetup.msi' -dTargetName=YUViewSetup -out obj/Release/ -arch x64 harvestedDirectory.wxs
217- # & "C:\Program Files (x86)\WiX Toolset v3.14\bin\light.exe" -b ../../deploy -out bin/Release/YUViewSetup.msi -pdbout bin/Release/YUViewSetup.wixpdb -cultures:null -ext "C:\Program Files (x86)\WiX Toolset v3.14\bin\WixUIExtension.dll" -contentsfile obj/Release/YUViewSetup.wixproj.BindContentsFileListnull.txt -outputsfile obj/Release/YUViewSetup.wixproj.BindOutputsFileListnull.txt -builtoutputsfile obj/Release/YUViewSetup.wixproj.BindBuiltOutputsFileListnull.txt obj/Release/YUView.wixobj obj/Release/harvestedDirectory.wixobj
218- # cd ${{ github.workspace }}
219- # cp deployment/wix/bin/Release/YUViewSetup.msi ./
220- # if: matrix.auto_update == true
121+ # cd build
122+ # make INSTALL_ROOT=appdir install
123+ # $GITHUB_WORKSPACE/linuxdeployqt-6-x86_64.AppImage YUViewApp/appdir/usr/local/share/applications/de.rwth_aachen.ient.YUView.desktop -appimage -bundle-non-qt-libs -verbose=2
124+ # mv YUView-*.AppImage YUView.AppImage
125+ # mkdir $GITHUB_WORKSPACE/artifacts
126+ # cp YUView.AppImage $GITHUB_WORKSPACE/artifacts/
221127 # - name: Upload Artifact
222128 # uses: actions/upload-artifact@v4
223129 # with:
224- # name: ${{matrix.ARTIFACT_NAME }}
130+ # name: ${{steps.artifacts.outputs.outputZip }}
225131 # path: artifacts
226- # - name: Upload Windows installer Artifact
227- # uses: actions/upload-artifact@v4
228- # with:
229- # name: YUViewSetup.msi
230- # path: ./YUViewSetup.msi
231- # if: matrix.auto_update == true
232- # - name: Release Zip
132+ # - name: Release
233133 # uses: softprops/action-gh-release@v1
234134 # if: startsWith(github.ref, 'refs/tags/')
235135 # with:
236- # files: artifacts/YUView-Win.zip
237- # - name: Release Installer
238- # uses: softprops/action-gh-release@v1
239- # if: startsWith(github.ref, 'refs/tags/') && matrix.auto_update == true
240- # with:
241- # files: YUViewSetup.msi
136+ # files: artifacts/${{steps.artifacts.outputs.outputZip}}
137+ build-windows :
138+ runs-on : windows-2022
139+ strategy :
140+ matrix :
141+ autoUpdate : [true, false]
142+ steps :
143+ - uses : actions/checkout@v4
144+ with :
145+ submodules : true
146+ - uses : ilammy/msvc-dev-cmd@v1
147+ - run : git fetch --prune --unshallow
148+ - name : Install Qt base
149+ run : |
150+ cd ../../
151+ mkdir -p YUViewQt/YUViewQt
152+ cd YUViewQt/YUViewQt
153+ curl -L https://github.com/ChristianFeldmann/YUViewQt/releases/download/QtBase-6.9.0/qtBase-6-9-0-{{matrix.os}}.zip -o Qt.zip
154+ 7z x Qt.zip
155+ echo "${{ github.workspace }}\..\..\YUViewQt\YUViewQt\Qt\bin" | Out-File -FilePath $env:GITHUB_PATH -Encoding utf8 -Append
156+ - name : Install libde265
157+ run : |
158+ curl -L https://github.com/ChristianFeldmann/libde265/releases/download/v1.1/libde265.dll -o libde265.dll
159+ curl -L https://raw.githubusercontent.com/ChristianFeldmann/libde265/master/COPYING -o libde265License.txt
160+ - name : Install jom
161+ run : |
162+ choco install jom
163+ - name : Install openSSL
164+ run : |
165+ mkdir openSSL
166+ cd openSSL
167+ curl -L https://github.com/ChristianFeldmann/YUViewQt/releases/download/openSSL3.5.0/openSSL-3-5-0-{{matrix.os}}.zip -o openSSL.zip
168+ 7z x openSSL.zip
169+ cd ..
170+ - name : Activate auto update
171+ if : matrix.autoUpdate == true
172+ run : sed -i -- "s/#define UPDATE_FEATURE_ENABLE 0/#define UPDATE_FEATURE_ENABLE 1/g" YUViewLib/src/common/Typedef.h
173+ shell : bash
174+ - name : Build
175+ run : |
176+ echo "Creating Build dir and entering it"
177+ mkdir build
178+ cd build
179+ echo "Qmake Version:"
180+ d:\a\YUViewQt\YUViewQt\Qt\bin\qmake --version
181+ echo "Executing qmake..."
182+ d:\a\YUViewQt\YUViewQt\Qt\bin\qmake CONFIG+=UNITTESTS ..
183+ echo "Executing jom:"
184+ jom
185+ - name : Run Unittests
186+ run : D:\a\YUView\YUView\build\YUViewUnitTest\YUViewUnitTest
187+ - name : WindeployQT
188+ run : |
189+ mkdir deploy
190+ cd deploy
191+ cp ../build/YUViewApp/YUView.exe .
192+ d:\a\YUViewQt\YUViewQt\Qt\bin\windeployqt.exe --release --no-compiler-runtime YUView.exe
193+ cp ../openSSL/*.dll .
194+ mkdir decoder
195+ cp ..\libde265.dll decoder
196+ cp ..\libde265License.txt decoder
197+ cp ../LICENSE.GPL3 .
198+ cd ..
199+ python deployment/versioning.py -d deploy -o deploy/versioninfo.txt
200+ mkdir artifacts
201+ 7z a artifacts/YUView-Win.zip ./deploy/*
202+ - name : Wix Windows
203+ if : matrix.autoUpdate == true
204+ run : |
205+ cd ${{ github.workspace }}/deployment/wix
206+ cp 'C:\Program Files (x86)\Microsoft Visual Studio\2019\Enterprise\VC\Redist\MSVC\v142\MergeModules\Microsoft_VC142_CRT_x64.msm' .
207+ & "C:\Program Files (x86)\WiX Toolset v3.14\bin\heat.exe" dir ../../deploy -gg -dr APPLICATIONFOLDER -srd -sreg -cg YUViewComponents -out harvestedDirectory.wxs
208+ & "C:\Program Files (x86)\WiX Toolset v3.14\bin\candle.exe" -dConfiguration=Release -dOutDir=bin/Release/ '-dTargetExt=.msi' '-dTargetFileName=YUViewSetup.msi' -dTargetName=YUViewSetup -out obj/Release/ -arch x64 -ext "C:\Program Files (x86)\WiX Toolset v3.14\bin\WixUIExtension.dll" YUView.wxs
209+ & "C:\Program Files (x86)\WiX Toolset v3.14\bin\candle.exe" -dConfiguration=Release -dOutDir=bin/Release/ '-dTargetExt=.msi' '-dTargetFileName=YUViewSetup.msi' -dTargetName=YUViewSetup -out obj/Release/ -arch x64 harvestedDirectory.wxs
210+ & "C:\Program Files (x86)\WiX Toolset v3.14\bin\light.exe" -b ../../deploy -out bin/Release/YUViewSetup.msi -pdbout bin/Release/YUViewSetup.wixpdb -cultures:null -ext "C:\Program Files (x86)\WiX Toolset v3.14\bin\WixUIExtension.dll" -contentsfile obj/Release/YUViewSetup.wixproj.BindContentsFileListnull.txt -outputsfile obj/Release/YUViewSetup.wixproj.BindOutputsFileListnull.txt -builtoutputsfile obj/Release/YUViewSetup.wixproj.BindBuiltOutputsFileListnull.txt obj/Release/YUView.wixobj obj/Release/harvestedDirectory.wixobj
211+ cd ${{ github.workspace }}
212+ cp deployment/wix/bin/Release/YUViewSetup.msi ./
213+ - name : Upload Artifact (Autoupdate)
214+ if : matrix.autoUpdate == true
215+ uses : actions/upload-artifact@v4
216+ with :
217+ name : YUView-{{matrix.os}}-autoupdate.zip
218+ path : artifacts
219+ - name : Upload Artifact (Autoupdate disabled)
220+ if : matrix.autoUpdate == false
221+ uses : actions/upload-artifact@v4
222+ with :
223+ name : YUView-{{matrix.os}}.zip
224+ path : artifacts
225+ - name : Upload Windows installer Artifact
226+ if : matrix.autoUpdate == true
227+ uses : actions/upload-artifact@v4
228+ with :
229+ name : YUViewSetup.msi
230+ path : ./YUViewSetup.msi
231+ - name : Release Zip
232+ uses : softprops/action-gh-release@v1
233+ if : startsWith(github.ref, 'refs/tags/')
234+ with :
235+ files : artifacts/YUView-Win.zip
236+ - name : Release Installer
237+ uses : softprops/action-gh-release@v1
238+ if : startsWith(github.ref, 'refs/tags/') && matrix.autoUpdate == true
239+ with :
240+ files : YUViewSetup.msi
242241
243242 # How to upload files to the release:
244243 # https://github.com/Blacksmoke16/oq/pull/47/files#diff-082c28d748ad2e3eecc5508d740d9417R9-R29
0 commit comments