Minor fix #18
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
#-------------------------------------------------------------------------------- | |
# Workflow configuration | |
#-------------------------------------------------------------------------------- | |
name: "MiniAnalyser CI builds" | |
on: | |
push: | |
pull_request: | |
#-------------------------------------------------------------------------------- | |
# Define application name & version | |
#-------------------------------------------------------------------------------- | |
env: | |
APPLICATION: "MiniAnalyser" | |
APPLICATION_VERSION: "48" | |
APPLICATION_EXECUTABLE: "mini_analyser" | |
QT_VERSION: "6.4.2" | |
#-------------------------------------------------------------------------------- | |
# Workflow jobs | |
#-------------------------------------------------------------------------------- | |
jobs: | |
## GNU/Linux build ########################################################### | |
build-linux: | |
name: "Linux CI build" | |
runs-on: ubuntu-20.04 | |
steps: | |
# Checkout the repository | |
- name: Checkout repository and submodules | |
uses: actions/checkout@v3 | |
with: | |
submodules: recursive | |
# Install Qt | |
- name: Install Qt | |
uses: jurplel/install-qt-action@v3 | |
with: | |
version: ${{env.QT_VERSION}} | |
modules: qtimageformats | |
# Install dependencies (from package manager) | |
- name: Install dependencies (from package manager) | |
run: | | |
sudo apt-get install libxkbcommon-x11-0 libxcb-icccm4 libxcb-image0 libxcb-keysyms1 libxcb-render-util0 libxcb-xinerama0 libzstd-dev -y; | |
sudo apt-get install linux-headers-generic -y; | |
sudo apt-get install libgl1-mesa-dev -y; | |
sudo apt-get install appstream -y; | |
# Build library | |
- name: Build library | |
run: | | |
cd minivideo/build/ | |
cmake --version | |
cmake -DCMAKE_BUILD_TYPE=Release -DBUILD_SHARED_LIBS:BOOL=ON -DBUILD_STATIC_LIBS:BOOL=ON -DCMAKE_INSTALL_PREFIX=/usr .. | |
make -j$(nproc) | |
# Build application | |
- name: Build application | |
run: | | |
cd mini_analyser/ | |
qmake --version | |
qmake ${{env.APPLICATION_EXECUTABLE}}.pro CONFIG+=release PREFIX=/usr | |
make -j$(nproc) | |
# Package application | |
- name: Package application | |
run: | | |
cd mini_analyser/ | |
make INSTALL_ROOT=appdir install | |
wget -c -nv "https://github.com/linuxdeploy/linuxdeploy/releases/download/continuous/linuxdeploy-x86_64.AppImage" | |
wget -c -nv "https://github.com/linuxdeploy/linuxdeploy-plugin-appimage/releases/download/continuous/linuxdeploy-plugin-appimage-x86_64.AppImage" | |
wget -c -nv "https://github.com/linuxdeploy/linuxdeploy-plugin-qt/releases/download/continuous/linuxdeploy-plugin-qt-x86_64.AppImage" | |
chmod a+x linuxdeploy-x86_64.AppImage | |
chmod a+x linuxdeploy-plugin-appimage-x86_64.AppImage | |
chmod a+x linuxdeploy-plugin-qt-x86_64.AppImage | |
export EXTRA_QT_PLUGINS="svg" | |
./linuxdeploy-x86_64.AppImage --appdir appdir --plugin qt --output appimage | |
# Upload AppImage | |
- name: Upload AppImage | |
uses: actions/upload-artifact@v3 | |
with: | |
name: ${{env.APPLICATION}}-${{env.APPLICATION_VERSION}}-linux64.AppImage | |
path: mini_analyser/${{env.EXECUTABLE}}*.AppImage | |
## macOS build ############################################################### | |
build-mac: | |
name: "macOS CI build" | |
runs-on: macos-11 | |
steps: | |
# Checkout the repository | |
- name: Checkout repository and submodules | |
uses: actions/checkout@v3 | |
with: | |
submodules: recursive | |
# Install dependencies | |
#- name: Install dependencies | |
# run: | | |
# brew install qt6 | |
# Install Qt | |
- name: Install Qt | |
uses: jurplel/install-qt-action@v3 | |
with: | |
version: ${{env.QT_VERSION}} | |
modules: qtimageformats | |
# Build library | |
- name: Build library | |
run: | | |
cd minivideo/build/ | |
cmake --version | |
cmake -DCMAKE_BUILD_TYPE=Release -DBUILD_SHARED_LIBS:BOOL=ON -DBUILD_STATIC_LIBS:BOOL=ON -DCMAKE_INSTALL_PREFIX=/usr .. | |
make -j$(nproc) | |
# Build application | |
- name: Build application | |
run: | | |
cd mini_analyser/ | |
qmake --version | |
qmake ${{env.APPLICATION_EXECUTABLE}}.pro CONFIG+=release | |
make -j$(nproc) | |
# Package application | |
- name: Package application | |
run: | | |
cd mini_analyser/ | |
make install | |
zip -r -X ${{env.APPLICATION}}.zip bin/${{env.EXECUTABLE}}.app | |
# Upload app zip | |
- name: Upload app zip | |
uses: actions/upload-artifact@v3 | |
with: | |
name: ${{env.APPLICATION}}-${{env.APPLICATION_VERSION}}-macOS.app | |
path: mini_analyser/bin/${{env.EXECUTABLE}}.app | |
## Windows build ############################################################# | |
build-windows: | |
name: "Windows CI build" | |
runs-on: windows-2022 | |
steps: | |
# Checkout the repository | |
- name: Checkout repository and submodules | |
uses: actions/checkout@v3 | |
with: | |
submodules: recursive | |
# Configure MSVC | |
- name: Configure MSVC | |
uses: ilammy/msvc-dev-cmd@v1 | |
with: | |
arch: x64 | |
spectre: true | |
# Install Qt | |
- name: Install Qt | |
uses: jurplel/install-qt-action@v3 | |
with: | |
version: ${{env.QT_VERSION}} | |
modules: qtimageformats | |
# Install NSIS (already installed in 'windows-2022') | |
#- name: Install NSIS | |
# run: | | |
# Invoke-Expression (New-Object System.Net.WebClient).DownloadString('https://get.scoop.sh') | |
# scoop bucket add extras | |
# scoop install nsis | |
# Build library | |
- name: Build library | |
run: | | |
cd minivideo/build/ | |
cmake --version | |
cmake -DCMAKE_BUILD_TYPE=Release -DBUILD_SHARED_LIBS:BOOL=ON -DBUILD_STATIC_LIBS:BOOL=ON -DCMAKE_INSTALL_PREFIX=/usr .. | |
cmake --build . --config Release | |
mv Release/minivideo.lib minivideo.lib | |
mv Release/minivideo.dll minivideo.dll | |
# Build application | |
- name: Build application | |
run: | | |
cp minivideo/build/minivideo.lib mini_analyser/bin/minivideo.lib | |
cp minivideo/build/minivideo.dll mini_analyser/bin/minivideo.dll | |
cd mini_analyser/ | |
qmake --version | |
qmake ${{env.APPLICATION_EXECUTABLE}}.pro CONFIG+=release | |
make | |
# Package application | |
- name: Package application | |
run: | | |
cp minivideo/build/minivideo.dll mini_analyser/bin/minivideo.dll | |
cd mini_analyser/ | |
windeployqt bin/ | |
7z a mini_analyser/mini_analyser-%APPVEYOR_BUILD_VERSION%-win64.zip mini_analyser-%APPVEYOR_BUILD_VERSION%-win64 | |
# Upload app zip | |
- name: Upload app zip | |
uses: actions/upload-artifact@v3 | |
with: | |
name: ${{env.EXECUTABLE}}-${{env.APPLICATION_VERSION}}-win64.zip | |
path: ${{env.EXECUTABLE}}.zip |