# SPDX-FileCopyrightText: 2024 shadPS4 Emulator Project # SPDX-License-Identifier: GPL-2.0-or-later name: Linux-Qt on: push: branches: [ "main" ] pull_request: branches: [ "main" ] env: BUILD_TYPE: Release jobs: build: runs-on: ubuntu-24.04 steps: - uses: actions/checkout@v4 with: submodules: recursive - name: Install misc packages run: > sudo apt-get update && sudo apt install libx11-dev libxext-dev libwayland-dev libfuse2 clang build-essential qt6-base-dev qt6-tools-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/ccache-action@v1.2.14 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 -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: Get date and git hash id: vars run: | echo "date=$(date +'%Y-%m-%d')" >> $GITHUB_OUTPUT echo "shorthash=$(git rev-parse --short HEAD)" >> $GITHUB_OUTPUT - name: Upload executable uses: actions/upload-artifact@v4 with: name: shadps4-linux-qt-${{ steps.vars.outputs.date }}-${{ steps.vars.outputs.shorthash }} path: Shadps4-qt.AppImage