Fix Wayland on Linux #13
This file contains 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
# SPDX-FileCopyrightText: 2024 shadPS4 Emulator Project | |
# SPDX-License-Identifier: GPL-2.0-or-later | |
name: Build and Release | |
on: | |
push: | |
branches: [ "main" ] | |
pull_request: | |
branches: [ "*" ] | |
concurrency: | |
group: ci-${{ github.event_name }}-${{ github.ref }} | |
cancel-in-progress: ${{ github.event_name == 'push' }} | |
env: | |
BUILD_TYPE: Release | |
jobs: | |
reuse: | |
runs-on: ubuntu-latest | |
continue-on-error: true | |
steps: | |
- uses: actions/checkout@v4 | |
- uses: fsfe/reuse-action@v4 | |
clang-format: | |
runs-on: ubuntu-latest | |
continue-on-error: true | |
steps: | |
- uses: actions/checkout@v4 | |
with: | |
fetch-depth: 0 | |
- name: Install | |
run: | | |
wget -O - https://apt.llvm.org/llvm-snapshot.gpg.key | sudo apt-key add - | |
sudo add-apt-repository 'deb http://apt.llvm.org/jammy/ llvm-toolchain-jammy-17 main' | |
sudo apt update | |
sudo apt install clang-format-17 | |
- name: Build | |
env: | |
COMMIT_RANGE: ${{ github.event.pull_request.base.sha }}..${{ github.event.pull_request.head.sha }} | |
run: ./.ci/clang-format.sh | |
get-info: | |
runs-on: ubuntu-latest | |
outputs: | |
date: ${{ steps.vars.outputs.date }} | |
shorthash: ${{ steps.vars.outputs.shorthash }} | |
steps: | |
- uses: actions/checkout@v4 | |
- name: Get date and git hash | |
id: vars | |
run: | | |
echo "date=$(date +'%Y-%m-%d')" >> $GITHUB_ENV | |
echo "shorthash=$(git rev-parse --short HEAD)" >> $GITHUB_ENV | |
echo "date=$(date +'%Y-%m-%d')" >> $GITHUB_OUTPUT | |
echo "shorthash=$(git rev-parse --short HEAD)" >> $GITHUB_OUTPUT | |
linux-sdl: | |
runs-on: ubuntu-24.04 | |
needs: get-info | |
steps: | |
- uses: actions/checkout@v4 | |
with: | |
submodules: recursive | |
- name: Install dependencies | |
run: sudo apt-get update && sudo apt install -y libx11-dev libxext-dev libwayland-dev libdecor-0-dev libxkbcommon-dev libglfw3-dev libgles2-mesa-dev libfuse2 clang build-essential libasound2-dev libpulse-dev libopenal-dev | |
- name: Cache CMake Configuration | |
uses: actions/cache@v4 | |
env: | |
cache-name: ${{ runner.os }}-sdl-cache-cmake-configuration | |
with: | |
path: | | |
${{github.workspace}}/build | |
key: ${{ env.cache-name }}-${{ hashFiles('**/CMakeLists.txt', 'cmake/**') }} | |
restore-keys: | | |
${{ env.cache-name }}- | |
- name: Cache CMake Build | |
uses: hendrikmuhs/[email protected] | |
env: | |
cache-name: ${{ runner.os }}-sdl-cache-cmake-build | |
with: | |
append-timestamp: false | |
key: ${{ env.cache-name }}-${{ hashFiles('**/CMakeLists.txt', 'cmake/**') }} | |
- name: Configure CMake | |
run: cmake --fresh -B ${{github.workspace}}/build -DCMAKE_BUILD_TYPE=${{env.BUILD_TYPE}} -DCMAKE_C_COMPILER=clang -DCMAKE_CXX_COMPILER=clang++ -DCMAKE_C_COMPILER_LAUNCHER=ccache -DCMAKE_CXX_COMPILER_LAUNCHER=ccache | |
- name: Build | |
run: cmake --build ${{github.workspace}}/build --config ${{env.BUILD_TYPE}} --parallel | |
- name: Package and Upload Linux(ubuntu64) SDL artifact | |
run: | | |
ls -la ${{ github.workspace }}/build/shadps4 | |
- uses: actions/upload-artifact@v4 | |
with: | |
name: shadps4-ubuntu64-${{ needs.get-info.outputs.date }}-${{ needs.get-info.outputs.shorthash }} | |
path: ${{ github.workspace }}/build/shadps4 | |
- name: Run AppImage packaging script | |
run: ./.github/linux-appimage-sdl.sh | |
- name: Package and Upload Linux SDL artifact | |
run: | | |
tar cf shadps4-linux-sdl.tar.gz -C ${{github.workspace}}/build shadps4 | |
- uses: actions/upload-artifact@v4 | |
with: | |
name: shadps4-linux-sdl-${{ needs.get-info.outputs.date }}-${{ needs.get-info.outputs.shorthash }} | |
path: Shadps4-sdl.AppImage | |
linux-qt: | |
runs-on: ubuntu-24.04 | |
needs: get-info | |
steps: | |
- uses: actions/checkout@v4 | |
with: | |
submodules: recursive | |
- name: Install dependencies | |
run: sudo apt-get update && sudo apt install -y libx11-dev libxext-dev libwayland-dev libdecor-0-dev libxkbcommon-dev libglfw3-dev libgles2-mesa-dev libfuse2 clang build-essential qt6-base-dev qt6-tools-dev qt6-multimedia-dev libasound2-dev libpulse-dev libopenal-dev | |
- name: Cache CMake Configuration | |
uses: actions/cache@v4 | |
env: | |
cache-name: ${{ runner.os }}-qt-cache-cmake-configuration | |
with: | |
path: | | |
${{github.workspace}}/build | |
key: ${{ env.cache-name }}-${{ hashFiles('**/CMakeLists.txt', 'cmake/**') }} | |
restore-keys: | | |
${{ env.cache-name }}- | |
- name: Cache CMake Build | |
uses: hendrikmuhs/[email protected] | |
env: | |
cache-name: ${{ runner.os }}-qt-cache-cmake-build | |
with: | |
append-timestamp: false | |
key: ${{ env.cache-name }}-${{ hashFiles('**/CMakeLists.txt', 'cmake/**') }} | |
- name: Configure CMake | |
run: cmake --fresh -B ${{github.workspace}}/build -DCMAKE_BUILD_TYPE=${{env.BUILD_TYPE}} -DCMAKE_C_COMPILER=clang -DCMAKE_CXX_COMPILER=clang++ -DENABLE_QT_GUI=ON -DCMAKE_C_COMPILER_LAUNCHER=ccache -DCMAKE_CXX_COMPILER_LAUNCHER=ccache | |
- name: Build | |
run: cmake --build ${{github.workspace}}/build --config ${{env.BUILD_TYPE}} --parallel | |
- name: Run AppImage packaging script | |
run: ./.github/linux-appimage-qt.sh | |
- name: Package and Upload Linux Qt artifact | |
run: | | |
tar cf shadps4-linux-qt.tar.gz -C ${{github.workspace}}/build shadps4 | |
- uses: actions/upload-artifact@v4 | |
with: | |
name: shadps4-linux-qt-${{ needs.get-info.outputs.date }}-${{ needs.get-info.outputs.shorthash }} | |
path: Shadps4-qt.AppImage |