Switch to GitHub Actions for AppImage builds
This commit is contained in:
parent
a34d40e3ee
commit
151f5dd678
3 changed files with 150 additions and 36 deletions
149
.github/workflows/build-appimage.yml
vendored
Normal file
149
.github/workflows/build-appimage.yml
vendored
Normal file
|
|
@ -0,0 +1,149 @@
|
|||
name: Build Linux AppImage
|
||||
|
||||
on:
|
||||
push:
|
||||
pull_request:
|
||||
branches: [ "master" ]
|
||||
|
||||
jobs:
|
||||
build:
|
||||
runs-on: ubuntu-22.04
|
||||
|
||||
steps:
|
||||
- name: Checkout Repository
|
||||
uses: actions/checkout@v4
|
||||
with:
|
||||
submodules: 'recursive'
|
||||
fetch-depth: 1
|
||||
|
||||
- name: Setup environment
|
||||
run: |
|
||||
wget -qO - https://packages.lunarg.com/lunarg-signing-key-pub.asc | sudo apt-key add -
|
||||
sudo wget -qO /etc/apt/sources.list.d/lunarg-vulkan-1.4.313-jammy.list https://packages.lunarg.com/vulkan/1.4.313/lunarg-vulkan-1.4.313-jammy.list
|
||||
sudo apt update
|
||||
sudo apt install -y qt6-base-dev qt6-declarative-dev libqt6svg6-dev qml6-module-qtquick-controls qml6-module-qtquick-templates qml6-module-qtquick-layouts \
|
||||
qml6-module-qtqml-workerscript qml6-module-qtquick-window qml6-module-qtquick python3-pip nasm libgbm-dev libdrm-dev libfreetype-dev libasound2-dev \
|
||||
libdbus-1-dev libegl1-mesa-dev libgl1-mesa-dev libgles2-mesa-dev libglu1-mesa-dev libibus-1.0-dev libpulse-dev libudev-dev libx11-dev libxcursor-dev \
|
||||
libxext-dev libxi-dev libxinerama-dev libxkbcommon-dev libxrandr-dev libxss-dev libxt-dev libxv-dev libxxf86vm-dev libxcb-dri3-dev libx11-xcb-dev \
|
||||
wayland-protocols libopus-dev libvdpau-dev libgl-dev libpipewire-0.3-dev vulkan-sdk
|
||||
sudo pip3 install meson
|
||||
mkdir -p dep_root/{bin,include,lib}
|
||||
echo "DEP_ROOT=$PWD/dep_root" >> $GITHUB_ENV
|
||||
echo "$PWD/dep_root/bin" >> $GITHUB_PATH
|
||||
|
||||
- name: Set CI version
|
||||
run: |
|
||||
CI_VERSION=`echo $GITHUB_SHA | cut -c1-6`
|
||||
echo "CI_VERSION=$CI_VERSION" >> $GITHUB_ENV
|
||||
|
||||
- name: Checkout SDL
|
||||
uses: actions/checkout@v4
|
||||
with:
|
||||
repository: libsdl-org/SDL
|
||||
ref: 235e4870af091ea7e3814ee2dbdb8e2ec627aaf0
|
||||
path: deps/SDL
|
||||
|
||||
- name: Build SDL
|
||||
working-directory: deps/SDL
|
||||
run: |
|
||||
./autogen.sh
|
||||
./configure
|
||||
make -j$(nproc)
|
||||
sudo make install
|
||||
|
||||
- name: Checkout SDL_ttf
|
||||
uses: actions/checkout@v4
|
||||
with:
|
||||
repository: libsdl-org/SDL_ttf
|
||||
ref: release-2.22.0
|
||||
path: deps/SDL_ttf
|
||||
submodules: 'recursive'
|
||||
|
||||
- name: Build SDL_ttf
|
||||
working-directory: deps/SDL_ttf
|
||||
run: |
|
||||
./autogen.sh
|
||||
./configure
|
||||
make -j$(nproc)
|
||||
sudo make install
|
||||
|
||||
- name: Checkout libva
|
||||
uses: actions/checkout@v4
|
||||
with:
|
||||
repository: intel/libva
|
||||
ref: 2.22.0
|
||||
path: deps/libva
|
||||
|
||||
- name: Build libva
|
||||
working-directory: deps/libva
|
||||
run: |
|
||||
./autogen.sh
|
||||
./configure --enable-x11
|
||||
make -j$(nproc)
|
||||
sudo make install
|
||||
|
||||
- name: Checkout libplacebo
|
||||
uses: actions/checkout@v4
|
||||
with:
|
||||
repository: haasn/libplacebo
|
||||
ref: 63a3d64ac32eaaa56aa60b5000d43c02544c6508
|
||||
path: deps/libplacebo
|
||||
submodules: 'recursive'
|
||||
|
||||
- name: Build libplacebo
|
||||
working-directory: deps/libplacebo
|
||||
run: |
|
||||
git apply ../../app/deploy/linux/appimage/*.patch
|
||||
meson setup build -Dvulkan=enabled -Dopengl=disabled -Ddemos=false
|
||||
ninja -C build
|
||||
sudo ninja install -C build
|
||||
|
||||
- name: Build dav1d
|
||||
working-directory: deps
|
||||
env:
|
||||
DAV1D_VER: 1.5.1
|
||||
run: |
|
||||
git clone --branch $DAV1D_VER --depth 1 https://code.videolan.org/videolan/dav1d.git
|
||||
pushd dav1d
|
||||
meson setup build -Ddefault_library=static -Dbuildtype=release -Denable_tools=false -Denable_tests=false
|
||||
ninja -C build
|
||||
sudo ninja install -C build
|
||||
popd
|
||||
|
||||
- name: Checkout FFmpeg
|
||||
uses: actions/checkout@v4
|
||||
with:
|
||||
repository: FFmpeg/FFmpeg
|
||||
ref: dd00a614e16a15db0b230dfe45790e913e593695
|
||||
path: deps/FFmpeg
|
||||
|
||||
- name: Build FFmpeg
|
||||
working-directory: deps/FFmpeg
|
||||
run: |
|
||||
./configure --enable-pic --disable-static --enable-shared --disable-all --disable-autodetect --enable-avcodec --enable-avformat --enable-swscale \
|
||||
--enable-decoder=h264 --enable-decoder=hevc --enable-decoder=av1 \
|
||||
--enable-vaapi --enable-hwaccel=h264_vaapi --enable-hwaccel=hevc_vaapi --enable-hwaccel=av1_vaapi \
|
||||
--enable-vdpau --enable-hwaccel=h264_vdpau --enable-hwaccel=hevc_vdpau --enable-hwaccel=av1_vdpau \
|
||||
--enable-libdrm --enable-vulkan --enable-hwaccel=h264_vulkan --enable-hwaccel=hevc_vulkan --enable-hwaccel=av1_vulkan \
|
||||
--enable-libdav1d --enable-decoder=libdav1d
|
||||
make -j$(nproc)
|
||||
sudo make install
|
||||
|
||||
- name: Install linuxdeployqt
|
||||
working-directory: dep_root/bin
|
||||
run: |
|
||||
wget -O linuxdeployqt https://github.com/probonopd/linuxdeployqt/releases/download/continuous/linuxdeployqt-continuous-x86_64.AppImage
|
||||
chmod a+x linuxdeployqt
|
||||
|
||||
- name: Build Binaries
|
||||
run: |
|
||||
sudo ldconfig
|
||||
scripts/build-appimage.sh
|
||||
|
||||
- name: Upload Binaries
|
||||
uses: actions/upload-artifact@v4
|
||||
with:
|
||||
name: Moonlight-LinuxAppImage-${{ env.CI_VERSION }}
|
||||
path: build/installer-release/Moonlight-${{ env.CI_VERSION }}-x86_64.AppImage
|
||||
compression-level: 0
|
||||
if-no-files-found: error
|
||||
Loading…
Add table
Add a link
Reference in a new issue