Skip to content

CI: add appimage.yml #1

CI: add appimage.yml

CI: add appimage.yml #1

Workflow file for this run

name: appimage
on:
workflow_call:
outputs:
name:
description: "The artifact name"
value: ${{ jobs.build_ubuntu.outputs.name }}
env:
GITHUB_TOKEN: ${{secrets.GITHUB_TOKEN}}
jobs:
build_ubuntu:
strategy:
matrix:
BUILD_TYPE: [Release]
# See: https://docs.github.com/zh/actions/using-github-hosted-runners/about-github-hosted-runners/about-github-hosted-runners
# See: https://github.com/actions/runner-images/
runs-on: ubuntu-latest
env:
BUILD_TYPE: ${{matrix.BUILD_TYPE}}
SOURCE_DIR: ${{github.workspace}}/.cache/source
TOOSL_DIR: ${{github.workspace}}/.cache/tools
INSTALL_DIR: ${{github.workspace}}/.cache/install
RabbitRemoteControl_VERSION: 0.0.27
artifact_name: build_appimage
# Map the job outputs to step outputs
outputs:
name: ${{ env.artifact_name }}
steps:
- name: Checkout Repository
uses: actions/checkout@v3
with:
submodules: true
- name: Make directories
run: |
cmake -E make_directory ${{github.workspace}}/build
cmake -E make_directory ${{env.SOURCE_DIR}}
cmake -E make_directory ${{env.TOOSL_DIR}}
cmake -E make_directory ${{env.INSTALL_DIR}}
- name: git clone RabbitCommon
working-directory: ${{env.SOURCE_DIR}}
run: |
git clone https://github.com/KangLin/RabbitCommon.git
- name: Install apt packages
run: |
sudo apt-get update -y
sudo apt-get upgrade -y
sudo apt install -y -q cmake build-essential xvfb xpra \
libgl1-mesa-dev libglx-dev libglu1-mesa-dev \
cmake debhelper fakeroot graphviz \
libxkbcommon-dev libxkbcommon-x11-dev xorg-dev libx11-xcb-dev \
libx11-dev libxfixes-dev libxcb-randr0-dev libxcb-shm0-dev \
libxcb-xinerama0-dev libxcb-composite0-dev libxcomposite-dev \
libxinerama-dev libxcb1-dev libx11-xcb-dev libxcb-xfixes0-dev \
libpixman-1-dev libpam0g-dev libutf8proc-dev \
libfuse3-dev libusb-1.0-0-dev libpcap-dev libcups2-dev \
libavcodec-dev libavformat-dev libresample1-dev libswscale-dev \
libvncserver-dev libssh-dev libtelnet-dev
- name: Install Qt
- name: Install Qt
uses: jurplel/install-qt-action@v3

Check failure on line 71 in .github/workflows/appimage.yml

View workflow run for this annotation

GitHub Actions / .github/workflows/appimage.yml

Invalid workflow file

You have an error in your yaml syntax on line 71
with:
aqtversion: '==3.1.*'
version: '6.8.0'
host: 'linux'
target: 'desktop'
arch: 'linux_gcc_64'
modules: 'qtscxml qtmultimedia qtimageformats qtserialport qt5compat'
- name: Cache installed
uses: actions/cache@v3
id: cache-installed
with:
path: |
${{env.INSTALL_DIR}}
key: install_ubuntu_${{matrix.BUILD_TYPE}}
- name: build FreeRDP
working-directory: ${{env.SOURCE_DIR}}
run: |
if [ ! -d ${{env.INSTALL_DIR}}/lib/cmake/FreeRDP3 ]; then
git clone -b 3.9.0 --depth=1 https://github.com/FreeRDP/FreeRDP.git
# git clone https://github.com/KangLin/FreeRDP.git
cd FreeRDP
git submodule update --init --recursive
cmake -E make_directory build
cd build
cmake .. \
-DCMAKE_BUILD_TYPE=${{matrix.BUILD_TYPE}} \
-DCMAKE_INSTALL_PREFIX="${{env.INSTALL_DIR}}" \
-DWITH_SERVER=ON \
-DWITH_CLIENT_SDL=OFF \
-DWITH_KRB5=OFF \
-DWITH_MANPAGES=OFF
cmake --build . --config ${{matrix.BUILD_TYPE}}
cmake --build . --config ${{matrix.BUILD_TYPE}} --target install
fi
- name: build RabbitVNC
if: false
working-directory: ${{env.SOURCE_DIR}}
run: |
if [ ! -d ${{env.INSTALL_DIR}}/lib/cmake/RabbitVNC ]; then
git clone --depth=1 https://github.com/KangLin/RabbitVNC.git
cd ${{env.SOURCE_DIR}}/RabbitVNC
cmake -E make_directory build
cd build
cmake .. -DCMAKE_BUILD_TYPE=${{ matrix.BUILD_TYPE }} \
-DCMAKE_INSTALL_PREFIX=${{ env.INSTALL_DIR }} \
-DBUILD_TESTS=OFF -DBUILD_VIEWER=OFF
cmake --build . --config ${{ matrix.BUILD_TYPE }}
cmake --build . --config ${{ matrix.BUILD_TYPE }} --target install
fi
- name: build tigervnc
#if: ${{ matrix.BUILD_TYPE == 'Debug'}}
working-directory: ${{env.SOURCE_DIR}}
run: |
if [ ! -d ${{env.INSTALL_DIR}}/lib/cmake/tigervnc ]; then
git clone --depth=1 https://github.com/KangLin/tigervnc.git
cd ${{env.SOURCE_DIR}}/tigervnc
cmake -E make_directory build
cd build
cmake .. -DCMAKE_BUILD_TYPE=${{ matrix.BUILD_TYPE }} \
-DCMAKE_INSTALL_PREFIX=${{ env.INSTALL_DIR }} \
-DBUILD_TESTS=OFF -DBUILD_VIEWER=OFF
cmake --build . --config ${{ matrix.BUILD_TYPE }}
cmake --build . --config ${{ matrix.BUILD_TYPE }} --target install/strip
fi
- name: build libdatachannel
working-directory: ${{env.SOURCE_DIR}}
run: |
if [ ! -d ${{env.INSTALL_DIR}}/lib/cmake/LibDataChannel ]; then
git clone -b v0.17.8 --depth=1 https://github.com/paullouisageneau/libdatachannel.git
cd libdatachannel
git submodule update --init --recursive
cmake -E make_directory build
cd build
cmake .. -DCMAKE_BUILD_TYPE=${{ matrix.BUILD_TYPE }} -DCMAKE_INSTALL_PREFIX=${{ env.INSTALL_DIR }}
cmake --build . --config ${{ matrix.BUILD_TYPE }}
cmake --build . --config ${{ matrix.BUILD_TYPE }} --target install/strip
fi
- name: build QtService
working-directory: ${{env.SOURCE_DIR}}
run: |
if [ ! -d ${{env.INSTALL_DIR}}/lib/cmake/QtService ]; then
git clone --depth=1 https://github.com/KangLin/qt-solutions.git
cd qt-solutions/qtservice
git submodule update --init --recursive
cmake -E make_directory build
cd build
export Qt6_DIR=/usr/lib/`uname -a`-linux-gnu/cmake/Qt6
cmake .. -DCMAKE_BUILD_TYPE=${{ matrix.BUILD_TYPE }} \
-DCMAKE_INSTALL_PREFIX=${{ env.INSTALL_DIR }}
cmake --build . --config ${{ matrix.BUILD_TYPE }}
cmake --build . --config ${{ matrix.BUILD_TYPE }} --target install/strip
fi
- name: pcapplusplus
working-directory: ${{env.SOURCE_DIR}}
run: |
if [ ! -d ${{env.INSTALL_DIR}}/lib/cmake/pcapplusplus ]; then
git clone -b v24.09 --depth=1 https://github.com/seladb/PcapPlusPlus.git
cd PcapPlusPlus
cmake -E make_directory build
cd build
cmake .. -DCMAKE_BUILD_TYPE=${{ matrix.BUILD_TYPE }} \
-DCMAKE_INSTALL_PREFIX=${{ env.INSTALL_DIR }} \
-DPCAPPP_BUILD_EXAMPLES=OFF \
-DPCAPPP_BUILD_TESTS=OFF \
-DPCAPPP_BUILD_TUTORIALS=OFF
cmake --build . --config ${{ matrix.BUILD_TYPE }}
cmake --build . --config ${{ matrix.BUILD_TYPE }} --target install/strip
fi
- name: build_appimage.sh
working-directory: ${{github.workspace}}
env:
RabbitCommon_DIR: ${{env.SOURCE_DIR}}/RabbitCommon
RabbitVNC_DIR: ${{ env.INSTALL_DIR }}/lib/cmake/RabbitVNC
tigervnc_DIR: ${{env.INSTALL_DIR}}/lib/cmake/tigervnc
#LibDataChannel_DIR: ${{ env.INSTALL_DIR }}/lib/cmake/LibDataChannel
QtService_DIR: ${{ env.INSTALL_DIR }}/lib/cmake/QtService
FreeRDP_DIR: ${{ env.INSTALL_DIR }}/lib/cmake/FreeRDP3
WinPR_DIR: ${{ env.INSTALL_DIR }}/lib/cmake/WinPR3
FreeRDP_Client_DIR: ${{env.INSTALL_DIR}}/lib/cmake/FreeRDP-Client3
FreeRDP_Shadow_DIR: ${{env.INSTALL_DIR}}/lib/cmake/FreeRDP-Shadow3
FreeRDP_Server_DIR: ${{env.INSTALL_DIR}}/lib/cmake/FreeRDP-Server3
PcapPlusPlus_DIR: ${{env.INSTALL_DIR}}/lib/cmake/pcapplusplus
run: |
if [ '${{matrix.BUILD_TYPE}}' == 'Release' ]; then
echo "Build Release ......"
export BUILD_VIEWER_TERMINAL=OFF
export tigervnc_DIR=${{env.INSTALL_DIR}}/lib/cmake/tigervnc
fi
./build_appimage.sh
- name: update configure file
if: ${{ matrix.BUILD_TYPE == 'Release'}}
working-directory: ${{github.workspace}}
#continue-on-error: true
run: |
#sudo apt update -y -qq
#sudo apt-get install -y -qq xvfb xpra
sudo Xvfb :99 -ac &
export DISPLAY=:99.0
echo "Install rabbit remote control ......"
sudo apt install ./rabbitremotecontrol_${{env.RabbitRemoteControl_VERSION}}_amd64.deb
#echo "ls -l /opt/RabbitRemoteControl/bin/"
#ls -l /opt/RabbitRemoteControl/bin/
echo "Update update_linux.xml ......"
export QT_XCB_GL_INTEGRATION=none
MD5SUM=`cat rabbitremotecontrol_${{env.RabbitRemoteControl_VERSION}}_amd64.deb.md5sum|awk '{print $1}'`
echo "MD5SUM rabbitremotecontrol_${{env.RabbitRemoteControl_VERSION}}_amd64.deb: ${MD5SUM}"
#echo "Enable core dump ......"
#ulimit -c unlimited
#echo "# sudo sysctl -w kernel.core_pattern=core"
#sudo sysctl -w kernel.core_pattern=${{github.workspace}}/core
echo "Generate update configure file ......"
/opt/RabbitRemoteControl/bin/RabbitRemoteControl.sh \
-f "${{github.workspace}}/update_ubuntu.json" \
--foc 1 \
-u "https://github.com/KangLin/RabbitRemoteControl/releases/download/${{env.RabbitRemoteControl_VERSION}}/rabbitremotecontrol_${{env.RabbitRemoteControl_VERSION}}_amd64.deb;https://sourceforge.net/projects/rabbitremotecontrol/files/${{env.RabbitRemoteControl_VERSION}}/rabbitremotecontrol_${{env.RabbitRemoteControl_VERSION}}_amd64.deb" \
--md5 "${MD5SUM}" \
-m "v${{env.RabbitRemoteControl_VERSION}}"
mv "${{github.workspace}}/update_ubuntu.json.xml" update_linux.xml
- name: Update version configure file
if: ${{ matrix.BUILD_TYPE == 'Release'}}
working-directory: ${{github.workspace}}
#continue-on-error: true
run: |
sudo Xvfb :99 -ac &
export DISPLAY=:99.0
/opt/RabbitRemoteControl/bin/RabbitRemoteControl.sh \
-f "${{github.workspace}}/version.json" \
--foc 0 \
--pv ${{env.RabbitRemoteControl_VERSION}}
- name: Update artifact
if: ${{ matrix.BUILD_TYPE == 'Release' }}
uses: actions/upload-artifact@v4
with:
name: ${{ env.artifact_name }}
path: |
${{github.workspace}}/update_ubuntu.json
${{github.workspace}}/version.json
${{github.workspace}}/update_linux.xml