Repository navigation
152 lines (136 loc) · 5.52 KB
/
Copy pathappimage.yml
File metadata and controls
152 lines (136 loc) · 5.52 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
name: Build AppImage
on:
workflow_dispatch:
inputs:
yyyymmdd:
description: 'Release date (yyyymmdd)'
required: true
jobs:
appimage:
runs-on: ubuntu-22.04
# 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
- 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 -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-x86_64.AppImage
chmod +x linuxdeploy-x86_64.AppImage
wget https://github.com/linuxdeploy/linuxdeploy-plugin-qt/releases/download/continuous/linuxdeploy-plugin-qt-x86_64.AppImage
chmod +x linuxdeploy-plugin-qt-x86_64.AppImage
- name: Copy missing libs
run: |
mkdir -p CaptureStream2/AppDir/usr/lib
cp /lib/x86_64-linux-gnu/libxkbcommon.so.0* CaptureStream2/AppDir/usr/lib/
cp /lib/x86_64-linux-gnu/libglib-2.0.so.0* CaptureStream2/AppDir/usr/lib/
cp /lib/x86_64-linux-gnu/libgthread-2.0.so.0* CaptureStream2/AppDir/usr/lib/
cp /lib/x86_64-linux-gnu/libpcre.so.3* CaptureStream2/AppDir/usr/lib/
cp /lib/x86_64-linux-gnu/libdbus-1.so.3* CaptureStream2/AppDir/usr/lib/
cp /lib/x86_64-linux-gnu/libsystemd.so.0* CaptureStream2/AppDir/usr/lib/
cp /lib/x86_64-linux-gnu/libxcb.so.1* CaptureStream2/AppDir/usr/lib/
cp /lib/x86_64-linux-gnu/libXau.so.6* CaptureStream2/AppDir/usr/lib/
cp /lib/x86_64-linux-gnu/libXdmcp.so.6* CaptureStream2/AppDir/usr/lib/
cp /lib/x86_64-linux-gnu/libbsd.so.0* CaptureStream2/AppDir/usr/lib/
cp /lib/x86_64-linux-gnu/libxcb-cursor.so.0* 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-x86_64.AppImage
./linuxdeploy-x86_64.AppImage --appimage-extract
mv squashfs-root linuxdeploy-extracted
./linuxdeploy-plugin-qt-x86_64.AppImage --appimage-extract
mv squashfs-root plugin-qt-extracted
- name: Build AppImage without FUSE
run: |
cd CaptureStream2
./linuxdeploy-x86_64.AppImage \
--appdir AppDir \
--desktop-file CaptureStream2.desktop \
--icon-file icon.png \
--executable ./build/CaptureStream2 \
--output appimage \
--plugin qt
lddtree ./build/CaptureStream2
cd build
mkdir -p LinCaptureStream2
cp ../CaptureStream2-x86_64.AppImage ./LinCaptureStream2/CaptureStream2
cp ../qss_files/stylesheet-ubu.qss ./LinCaptureStream2
cp -r ../qss_files/License ./LinCaptureStream2
wget -qO ffmpeg-static-ubuntu.zip https://github.com/CSReviser/ffmpeg-build/releases/download/7.1.1/ffmpeg-static-ubuntu.zip
7z e ffmpeg-static-ubuntu.zip ffmpeg -o./LinCaptureStream2
chmod -R 755 ./LinCaptureStream2
- name: Create ZIP file
run: |
cd CaptureStream2/build
zip -r "CaptureStream2-AppImage-${{ github.event.inputs.yyyymmdd }}.zip" LinCaptureStream2
- name: Upload zip to GitHub Release
uses: softprops/action-gh-release@v2
with:
files: CaptureStream2/build/CaptureStream2-AppImage-${{ 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-x86_64.AppImage