Next try windows #886
Workflow file for this run
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
name: CI build | |
on: | |
push: | |
release: | |
types: | |
- created | |
jobs: | |
# build-unix-native: | |
# runs-on: ${{ matrix.os }} | |
# strategy: | |
# matrix: | |
# include: | |
# - os: ubuntu-20.04 | |
# INSTALL_LIBS: libgl1-mesa-dev libxkbcommon-x11-0 libpcre2-16-0 qt5-default | |
# QMAKE_COMMAND: qmake | |
# - os: ubuntu-22.04 | |
# INSTALL_LIBS: qt6-base-dev | |
# QMAKE_COMMAND: qmake6 | |
# steps: | |
# - uses: actions/checkout@v3 | |
# - run: git fetch --prune --unshallow | |
# - name: Install Linux packages | |
# run: | | |
# sudo apt-get update | |
# sudo apt-get install ${{matrix.INSTALL_LIBS}} | |
# - name: Build | |
# run: | | |
# cd $GITHUB_WORKSPACE | |
# mkdir build | |
# cd build | |
# ${{matrix.QMAKE_COMMAND}} CONFIG+=UNITTESTS .. | |
# make -j$(nproc) | |
# make check | |
# build-mac-native: | |
# runs-on: ${{ matrix.os }} | |
# strategy: | |
# matrix: | |
# include: | |
# - os: macos-12 | |
# steps: | |
# - uses: actions/checkout@v3 | |
# - run: git fetch --prune --unshallow | |
# - name: Install packages | |
# run: | | |
# brew install qt | |
# - name: Build | |
# run: | | |
# cd $GITHUB_WORKSPACE | |
# mkdir build | |
# cd build | |
# qmake6 CONFIG+=UNITTESTS .. | |
# make -j $(sysctl -n hw.logicalcpu) | |
# make check | |
# build-unix: | |
# runs-on: ${{ matrix.os }} | |
# strategy: | |
# matrix: | |
# include: | |
# - os: ubuntu-20.04 | |
# QT_FILE: qtBase_6.5.2_ubuntu20.zip | |
# LIBDE265_REMOTE: libde265.so | |
# LIBDE265_LOCAL: libde265-internals.so | |
# ARTIFACT_NAME: YUView.Ubuntu20.AppImage | |
# CPU_COUNT_COMMAND: nproc | |
# - os: macos-11 | |
# QT_FILE: qtBase_6.5.2_mac11.zip | |
# LIBDE265_REMOTE: libde265.dylib | |
# LIBDE265_LOCAL: libde265-internals.dylib | |
# ARTIFACT_NAME: YUView-Mac11-BigSur.zip | |
# CPU_COUNT_COMMAND: sysctl -n hw.logicalcpu | |
# - os: macos-12 | |
# QT_FILE: qtBase_6.5.2_mac12.zip | |
# LIBDE265_REMOTE: libde265.dylib | |
# LIBDE265_LOCAL: libde265-internals.dylib | |
# ARTIFACT_NAME: YUView-Mac12-Monterey.zip | |
# CPU_COUNT_COMMAND: sysctl -n hw.logicalcpu | |
# steps: | |
# - uses: actions/checkout@v3 | |
# - run: git fetch --prune --unshallow | |
# - name: Install Qt base | |
# run: | | |
# cd ../../ | |
# mkdir -p YUViewQt/YUViewQt | |
# cd YUViewQt/YUViewQt | |
# curl -L https://github.com/ChristianFeldmann/YUViewQt/releases/download/QtBase-6.5.2/${{matrix.QT_FILE}} -o Qt.zip | |
# unzip -qa Qt.zip | |
# echo "$GITHUB_WORKSPACE/../../YUViewQt/YUViewQt/Qt/bin" >> $GITHUB_PATH | |
# shell: bash | |
# - name: Install Linuxdeployqt | |
# run: | | |
# curl -L https://github.com/probonopd/linuxdeployqt/releases/download/continuous/linuxdeployqt-continuous-x86_64.AppImage -o linuxdeployqt-6-x86_64.AppImage | |
# chmod a+x linuxdeployqt-6-x86_64.AppImage | |
# if: matrix.os == 'ubuntu-20.04' | |
# - name: Install Linux packages | |
# run: | | |
# sudo apt-get update | |
# 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 | |
# if: matrix.os == 'ubuntu-20.04' | |
# - name: Install libde265 | |
# run: | | |
# curl -L https://github.com/ChristianFeldmann/libde265/releases/download/v1.1/${{matrix.LIBDE265_REMOTE}} -o ${{matrix.LIBDE265_LOCAL}} | |
# curl -L https://raw.githubusercontent.com/ChristianFeldmann/libde265/master/COPYING -o libde265License.txt | |
# shell: bash | |
# - name: Build Linux/Mac | |
# run: | | |
# cd $GITHUB_WORKSPACE | |
# export PATH=$GITHUB_WORKSPACE/../../YUViewQt/YUViewQt/Qt/bin:$PATH | |
# mkdir build | |
# cd build | |
# qmake CONFIG+=UNITTESTS .. | |
# make -j $(${{matrix.CPU_COUNT_COMMAND}}) | |
# make check | |
# - name: Build App (Mac) | |
# run: | | |
# macdeployqt build/YUViewApp/YUView.app -always-overwrite -verbose=2 | |
# cp ${{matrix.LIBDE265_LOCAL}} build/YUViewApp/YUView.app/Contents/MacOS/. | |
# cd build/YUViewApp | |
# # Zip | |
# zip -r ${{matrix.ARTIFACT_NAME}} YUView.app/ | |
# mkdir $GITHUB_WORKSPACE/artifacts | |
# cp ${{matrix.ARTIFACT_NAME}} $GITHUB_WORKSPACE/artifacts/ | |
# if: matrix.os == 'macos-11' || matrix.os == 'macos-12' | |
# - name: Build Appimage (Linux) | |
# run: | | |
# cd build | |
# make INSTALL_ROOT=appdir install | |
# $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 | |
# mv YUView-*.AppImage YUView.AppImage | |
# mkdir $GITHUB_WORKSPACE/artifacts | |
# cp YUView.AppImage $GITHUB_WORKSPACE/artifacts/ | |
# cd $GITHUB_WORKSPACE | |
# ls -l | |
# cd $GITHUB_WORKSPACE/artifacts | |
# ls -l | |
# if: matrix.os == 'ubuntu-20.04' | |
# - name: Upload Artifact | |
# uses: actions/upload-artifact@v2 | |
# with: | |
# name: ${{matrix.ARTIFACT_NAME}} | |
# path: artifacts | |
# - name: Upload Release | |
# uses: actions/[email protected] | |
# env: | |
# GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} | |
# with: | |
# upload_url: ${{ github.event.release.upload_url }} | |
# asset_path: artifacts/${{matrix.ARTIFACT_NAME}} | |
# asset_name: ${{matrix.ARTIFACT_NAME}} | |
# asset_content_type: application/zip | |
# if: github.event_name == 'release' | |
build-windows: | |
runs-on: ${{ matrix.os }} | |
strategy: | |
matrix: | |
include: | |
- os: windows-2019 | |
auto_update: true | |
ARTIFACT_NAME: YUView-Win2019.zip | |
QT_FILE: qtBase_6.5.2_win2019.zip | |
- os: windows-2019 | |
auto_update: false | |
ARTIFACT_NAME: YUView-Win2019-noautoupdate.zip | |
QT_FILE: qtBase_6.5.2_win2019.zip | |
steps: | |
- uses: actions/checkout@v3 | |
- uses: ilammy/msvc-dev-cmd@v1 | |
- run: git fetch --prune --unshallow | |
- name: Install Qt base | |
run: | | |
cd ../../ | |
mkdir -p YUViewQt/YUViewQt | |
cd YUViewQt/YUViewQt | |
curl -L https://github.com/ChristianFeldmann/YUViewQt/releases/download/QtBase-6.5.2/${{matrix.QT_FILE}} -o Qt.zip | |
7z x Qt.zip | |
echo "${{ github.workspace }}\..\..\YUViewQt\YUViewQt\Qt\bin" | Out-File -FilePath $env:GITHUB_PATH -Encoding utf8 -Append | |
- name: Install libde265 | |
run: | | |
curl -L https://github.com/ChristianFeldmann/libde265/releases/download/v1.1/libde265.dll -o libde265.dll | |
curl -L https://raw.githubusercontent.com/ChristianFeldmann/libde265/master/COPYING -o libde265License.txt | |
- name: Install jom | |
run: | | |
Get-Location | |
curl -L https://github.com/ChristianFeldmann/jom/releases/download/v1.1.3-build/jom.exe -o jom.exe | |
cp jom.exe ../../YUViewQt/YUViewQt/Qt/bin/ | |
- name: Install openSSL | |
run: | | |
mkdir openSSL | |
cd openSSL | |
curl -L https://github.com/ChristianFeldmann/YUViewQt/releases/download/openSSL1.1.1g/openSSL_1_1_1g_win.zip -o openSSL.zip | |
7z x openSSL.zip | |
cd .. | |
- name: Activate auto update | |
run: sed -i -- "s/#define UPDATE_FEATURE_ENABLE 0/#define UPDATE_FEATURE_ENABLE 1/g" YUViewLib/src/common/Typedef.h | |
shell: bash | |
if: matrix.auto_update == true | |
- name: Build | |
run: | | |
echo "Creating Build dir" | |
mkdir build | |
echo "Entering build dir" | |
cd build | |
echo "Qmake Version:" | |
d:\a\YUViewQt\YUViewQt\Qt\bin\qmake --version | |
echo "Executing qmake..." | |
d:\a\YUViewQt\YUViewQt\Qt\bin\qmake CONFIG+=UNITTESTS .. | |
echo "Jom Version:" | |
d:\a\YUViewQt\YUViewQt\Qt\bin\jom.exe /VERSION | |
dir d:\a\YUViewQt\YUViewQt\Qt\bin\jom.exe | |
echo "Jom Makefile info:" | |
d:\a\YUViewQt\YUViewQt\Qt\bin\jom.exe /D | |
echo "Executing jom:" | |
d:\a\YUViewQt\YUViewQt\Qt\bin\jom.exe | |
- name: Run tests | |
run: | | |
cd build | |
nmake check | |
cd .. | |
- name: WindeployQT | |
run: | | |
mkdir deploy | |
cd deploy | |
cp ../build/YUViewApp/YUView.exe . | |
d:\a\YUViewQt\YUViewQt\Qt\bin\windeployqt.exe --release --no-compiler-runtime YUView.exe | |
cp ../openSSL/*.dll . | |
mkdir decoder | |
cp ..\libde265.dll decoder | |
cp ..\libde265License.txt decoder | |
cp ../LICENSE.GPL3 . | |
cd .. | |
python deployment/versioning.py -d deploy -o deploy/versioninfo.txt | |
mkdir artifacts | |
7z a artifacts/YUView-Win.zip ./deploy/* | |
- name: Wix Windows | |
run: | | |
cd ${{ github.workspace }}/deployment/wix | |
cp 'C:\Program Files (x86)\Microsoft Visual Studio\2019\Enterprise\VC\Redist\MSVC\v142\MergeModules\Microsoft_VC142_CRT_x64.msm' . | |
& "${{ env.WIX }}\bin\heat.exe" dir ../../deploy -gg -dr APPLICATIONFOLDER -srd -sreg -cg YUViewComponents -out harvestedDirectory.wxs | |
& "${{ env.WIX }}\bin\candle.exe" -dConfiguration=Release -dOutDir=bin/Release/ '-dTargetExt=.msi' '-dTargetFileName=YUViewSetup.msi' -dTargetName=YUViewSetup -out obj/Release/ -arch x64 -ext "${{ env.WIX }}\bin\WixUIExtension.dll" YUView.wxs | |
& "${{ env.WIX }}\bin\candle.exe" -dConfiguration=Release -dOutDir=bin/Release/ '-dTargetExt=.msi' '-dTargetFileName=YUViewSetup.msi' -dTargetName=YUViewSetup -out obj/Release/ -arch x64 harvestedDirectory.wxs | |
& "${{ env.WIX }}\bin\Light.exe" -b ../../deploy -out bin/Release/YUViewSetup.msi -pdbout bin/Release/YUViewSetup.wixpdb -cultures:null -ext "${{ env.WIX }}\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 | |
cd ${{ github.workspace }} | |
cp deployment/wix/bin/Release/YUViewSetup.msi ./ | |
if: matrix.auto_update == true | |
- name: Upload Artifact | |
uses: actions/upload-artifact@v2 | |
with: | |
name: ${{matrix.ARTIFACT_NAME}} | |
path: artifacts | |
- name: Upload Windows installer Artifact | |
uses: actions/upload-artifact@v2 | |
with: | |
name: YUViewSetup.msi | |
path: ./YUViewSetup.msi | |
if: matrix.auto_update == true | |
- name: Upload Windows zip to Release | |
uses: actions/[email protected] | |
env: | |
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} | |
with: | |
upload_url: ${{ github.event.release.upload_url }} | |
asset_path: artifacts/YUView-Win.zip | |
asset_name: ${{matrix.ARTIFACT_NAME}} | |
asset_content_type: application/zip | |
if: github.event_name == 'release' | |
- name: Upload Windows installer to Release | |
uses: actions/[email protected] | |
env: | |
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} | |
with: | |
upload_url: ${{ github.event.release.upload_url }} | |
asset_path: YUViewSetup.msi | |
asset_name: YUViewSetup.msi | |
asset_content_type: application/zip | |
if: github.event_name == 'release' && matrix.auto_update == true | |
# How to upload files to the release: | |
# https://github.com/Blacksmoke16/oq/pull/47/files#diff-082c28d748ad2e3eecc5508d740d9417R9-R29 | |
# Mime type list | |
# https://www.iana.org/assignments/media-types/media-types.xhtml |