Skip to content

test

test #377

Workflow file for this run

name: AppImage
on: [push]
env:
# Customize the CMake build type here (Release, Debug, RelWithDebInfo, etc.)
BUILD_TYPE: Release
VSCP_ROOT: ${{github.workspace}}/vscp
jobs:
build:
# The CMake configure and build commands are platform agnostic and should work equally
# well on Windows or Mac. You can convert this to a matrix build if you need
# cross-platform coverage.
# See: https://docs.github.com/en/free-pro-team@latest/actions/learn-github-actions/managing-complex-workflows#using-a-build-matrix
runs-on: ubuntu-latest
#continue-on-error: true
steps:
# https://github.com/actions/checkout
- uses: actions/checkout@v4
with:
submodules: recursive
# https://github.com/marketplace/actions/install-qt
# - name: Install Qt
# uses: jurplel/install-qt-action@v4
# with:
# version: '6.2.*'
# target: 'desktop'
# dir: '${{ github.workspace }}/qt/'
# modules: 'qtcharts qtconnectivity qtserialbus qtserialport qtwebsockets'
- name: Checkout vscp repo
uses: actions/checkout@v4
with:
repository: grodansparadis/vscp
path: vscp
ref: development
submodules: recursive
- name: Checkout eclipse paho repo
uses: actions/checkout@v4
with:
repository: eclipse/paho.mqtt.c
path: paho
- name: Update before installing packages
run: sudo apt-get update
- name: Install libmosquitto-dev manually
run: sudo apt-get install libmosquitto-dev
- name: Install libexpat-dev manually
run: sudo apt-get install libexpat-dev
- name: Install libssl-dev manually
run: sudo apt-get install libssl-dev
- name: Install paho manually
run: cd paho && mkdir build && cd build && sudo cmake -DPAHO_WITH_SSL=true .. && sudo make install
- name: Install curl manually
run: sudo apt-get install libcurl4-openssl-dev
- name: Install libwebsockets-dev
run: sudo apt install libwebsockets-dev
- name: Install FUSE manually
run: sudo apt install libfuse2
# Note that both of libqt5serialport5 libqt5serialport5-dev is needed
- name: Install qt5 components manually
run: sudo apt install qttools5-dev qtbase5-dev qtchooser qt5-qmake qtbase5-dev-tools qtdeclarative5-dev libqt5charts5-dev libqt5serialbus5-dev libqt5serialport5-dev
- name: Setup cmake
uses: jwlawson/actions-setup-cmake@v2
- name: Create Build Environment
run: |
mkdir build && cd build
cmake .. -DCMAKE_INSTALL_PREFIX=/usr -DVSCP_PATH=vscp/
- name: Build
working-directory: ${{github.workspace}}/build
shell: bash
# Execute the build. You can specify a specific target with "--target <NAME>"
run: |
make -j$(nproc)
make install DESTDIR=AppDir
- name: get linuxdeploy
working-directory: ${{github.workspace}}/build
shell: bash
# Install files
run: wget https://github.com/linuxdeploy/linuxdeploy/releases/download/continuous/linuxdeploy-x86_64.AppImage
- name: get qt plugin
working-directory: ${{github.workspace}}/build
shell: bash
# Install files
run: wget https://github.com/linuxdeploy/linuxdeploy-plugin-qt/releases/download/continuous/linuxdeploy-plugin-qt-x86_64.AppImage
- name: Make appimage files executable
working-directory: ${{github.workspace}}/build
shell: bash
# Install files
run: chmod +x linuxdeploy*.AppImage
- name: prepare AppRun
working-directory: ${{github.workspace}}/build
shell: bash
# Prepare content not installed by cmake (AppRun)
run: |
cp ../install/AppRun AppDir
chmod a+x AppDir/AppRun
cp ../install/vscp-works-qt.desktop AppDir
cp ../icons/vscpworks.png AppDir
- name: prepare desktop/icon
working-directory: ${{github.workspace}}/build
shell: bash
# Prepare content not installed by cmake (desktop/icon)
run: cp ../install/vscp-works-qt.desktop ./AppDir/ && cp ../icons/vscpworks.png ./AppDir/
- name: build appimage
working-directory: ${{github.workspace}}/build
shell: bash
# initialize AppDir, bundle shared libraries for QtQuickApp, use Qt plugin to bundle additional resources, and build AppImage, all in one single command
run: ./linuxdeploy-x86_64.AppImage --appdir AppDir --plugin qt --output appimage
- uses: actions/upload-artifact@v4
with:
name: vscp-works-qt
path: ${{github.workspace}}/build/vscpworks*.AppImage