Skip to content

Commit 28858a3

Browse files
author
Christian Feldmann
committed
Try windows
1 parent 0192350 commit 28858a3

File tree

1 file changed

+158
-159
lines changed

1 file changed

+158
-159
lines changed

.github/workflows/Build.yml

Lines changed: 158 additions & 159 deletions
Original file line numberDiff line numberDiff line change
@@ -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

Comments
 (0)