arm AppImage #17
This file contains hidden or 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: arm AppImage | |
| on: | |
| workflow_dispatch: | |
| inputs: | |
| yyyymmdd: | |
| description: 'Release date (yyyymmdd)' | |
| required: true | |
| jobs: | |
| appimage: | |
| runs-on: ubuntu-24.04-arm | |
| # container: | |
| # image: ghcr.io/csreviser/qt6-static:6.9.0-ubuntu22.04 | |
| steps: | |
| - name: Checkout Repository | |
| uses: actions/checkout@v4 | |
| - name: Install Dependencies | |
| run: | | |
| apt update && apt install sudo -y | |
| sudo apt update | |
| sudo apt install -y \ | |
| build-essential \ | |
| libgl1-mesa-dev \ | |
| libxcb1-dev libxcb-util-dev libx11-dev \ | |
| libxext-dev libxrender-dev libxkbcommon-dev \ | |
| libx11-xcb-dev \ | |
| libxcb-cursor-dev \ | |
| libxcb-glx0-dev \ | |
| libxcb-icccm4-dev \ | |
| libxcb-image0-dev \ | |
| libxcb-keysyms1-dev \ | |
| libxcb-randr0-dev \ | |
| libxcb-render-util0-dev \ | |
| libxcb-shape0-dev \ | |
| libxcb-shm0-dev \ | |
| libxcb-sync-dev \ | |
| libxcb-util-dev \ | |
| libxcb-xfixes0-dev \ | |
| libxcb-xkb-dev \ | |
| libxcb1-dev \ | |
| libxext-dev \ | |
| libxfixes-dev \ | |
| libxi-dev \ | |
| libxkbcommon-dev \ | |
| libxkbcommon-x11-dev \ | |
| libxrender-dev \ | |
| cmake make g++ pax-utils \ | |
| libpcre3 \ | |
| desktop-file-utils patchelf wget file git fuse libc6 \ | |
| python3 | |
| python3 -m pip install --upgrade pip | |
| pip install pyelftools | |
| - name: Run ldd version check | |
| run: ldd --version | |
| - name: Check GLIBC versions | |
| run: strings /lib/aarch64-linux-gnu/libc.so.6 | grep GLIBC_ | |
| - name: Install Qt | |
| uses: jurplel/install-qt-action@v4 | |
| with: | |
| version: 6.9.* | |
| modules: 'qtcharts' | |
| extra: '--external 7z' | |
| - name: Clone CaptureStream2 | |
| run: | | |
| git clone https://github.com/CSReviser/CaptureStream2.git | |
| cd CaptureStream2 | |
| git checkout feature | |
| git submodule update --init --recursive | |
| - name: Build Application | |
| run: | | |
| cd CaptureStream2 | |
| mkdir build | |
| cmake -DCMAKE_SYSTEM_PROCESSOR=arm64 -S ./ -B build | |
| cmake --build build --parallel | |
| - name: Download linuxdeploy and plugin | |
| run: | | |
| cd CaptureStream2 | |
| wget https://github.com/linuxdeploy/linuxdeploy/releases/download/continuous/linuxdeploy-aarch64.AppImage | |
| chmod +x linuxdeploy-aarch64.AppImage | |
| wget https://github.com/linuxdeploy/linuxdeploy-plugin-qt/releases/download/continuous/linuxdeploy-plugin-qt-aarch64.AppImage | |
| chmod +x linuxdeploy-plugin-qt-aarch64.AppImage | |
| - name: Copy missing libs | |
| run: | | |
| mkdir -p CaptureStream2/AppDir/usr/lib | |
| mkdir -p CaptureStream2/AppDir/usr/bin | |
| cat <<EOF > CaptureStream2/AppDir/usr/bin/qt.conf | |
| [Paths] | |
| Plugins=../lib/qt6/plugins | |
| Qml2Imports=../lib/qt6/qml | |
| EOF | |
| - name: Extract linuxdeploy AppImage | |
| run: | | |
| cd CaptureStream2 | |
| chmod +x linuxdeploy-aarch64.AppImage | |
| ./linuxdeploy-aarch64.AppImage --appimage-extract | |
| mv squashfs-root linuxdeploy-extracted | |
| ./linuxdeploy-plugin-qt-aarch64.AppImage --appimage-extract | |
| mv squashfs-root plugin-qt-extracted | |
| - name: Build AppImage without FUSE | |
| run: | | |
| cd CaptureStream2 | |
| ./linuxdeploy-aarch64.AppImage \ | |
| --appdir AppDir \ | |
| --desktop-file CaptureStream2.desktop \ | |
| --icon-file icon.png \ | |
| --executable ./build/CaptureStream2 \ | |
| --output appimage \ | |
| --plugin qt | |
| cd build | |
| mkdir -p LinCaptureStream2 | |
| cp ../CaptureStream2-aarch64.AppImage ./LinCaptureStream2/CaptureStream2 | |
| cp ../qss_files/stylesheet-ubu.qss ./LinCaptureStream2 | |
| cp -r ../qss_files/License ./LinCaptureStream2 | |
| wget -qO ffmpeg-static-ubuntu-arm.zip https://github.com/CSReviser/ffmpeg-build/releases/download/7.1.1/ffmpeg-static-ubuntu-arm.zip | |
| 7z e ffmpeg-static-ubuntu-arm.zip ffmpeg -o./LinCaptureStream2 | |
| chmod -R 755 ./LinCaptureStream2 | |
| - name: Create ZIP file | |
| run: | | |
| cd CaptureStream2/build | |
| zip -r "CaptureStream2-AppImage-arm-${{ github.event.inputs.yyyymmdd }}.zip" LinCaptureStream2 | |
| cp ./CaptureStream2 ./LinCaptureStream2/CaptureStream2 | |
| zip -r "CaptureStream2-ubuntu-arm-${{ github.event.inputs.yyyymmdd }}.zip" LinCaptureStream2 | |
| - name: Upload zip to GitHub Release | |
| uses: softprops/action-gh-release@v2 | |
| with: | |
| files: CaptureStream2/build/CaptureStream2-AppImage-arm-${{ github.event.inputs.yyyymmdd }}.zip | |
| tag_name: ${{ github.event.inputs.yyyymmdd }} | |
| env: | |
| GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} | |
| - name: Upload zip to GitHub Release | |
| uses: softprops/action-gh-release@v2 | |
| with: | |
| files: CaptureStream2/build/CaptureStream2-ubuntu-arm-${{ github.event.inputs.yyyymmdd }}.zip | |
| tag_name: ${{ github.event.inputs.yyyymmdd }} | |
| env: | |
| GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} | |
| - name: Upload AppImage | |
| uses: actions/upload-artifact@v4 | |
| with: | |
| name: CaptureStream2-AppImage | |
| path: ./CaptureStream2/CaptureStream2-arm.AppImage |