name: Build RPCS3 Qt UI (Legacy) defaults: run: shell: bash on: push: paths-ignore: - "**/*.md" pull_request: paths-ignore: - "**/*.md" workflow_dispatch: concurrency: group: ${{ github.ref }}-${{ github.event_name }} cancel-in-progress: false env: BUILD_REPOSITORY_NAME: ${{ github.repository }} BUILD_SOURCEBRANCHNAME: ${{ github.ref_name }} BUILD_SOURCEVERSION: ${{ github.sha }} BUILD_ARTIFACTSTAGINGDIRECTORY: ${{ github.workspace }}/artifacts/ jobs: Linux_Build: strategy: fail-fast: false matrix: include: - os: ubuntu-24.04 build_sh: ".ci/build-linux.sh" compiler: clang - os: ubuntu-24.04 build_sh: ".ci/build-linux.sh" compiler: gcc - os: ubuntu-24.04-arm build_sh: ".ci/build-linux-aarch64.sh" compiler: clang name: RPCS3 Qt UI (Legacy) for Linux ${{ matrix.os }} ${{ matrix.compiler }} runs-on: ${{ matrix.os }} env: CCACHE_DIR: ${{ github.workspace }}/ccache CI_HAS_ARTIFACTS: true DEPLOY_APPIMAGE: true APPDIR: "./appdir" ARTDIR: "./artifacts" COMPILER: ${{ matrix.compiler }} RX_VERSION: "Unknown" RX_SHA: "Unknown" steps: - name: Checkout repository uses: actions/checkout@main with: fetch-depth: 0 - name: Setup Cache uses: actions/cache@main with: path: ${{ env.CCACHE_DIR }} key: ${{ runner.os }}-ccache-${{ matrix.compiler }}-${{ runner.arch }}-${{github.run_id}} restore-keys: | ${{ runner.os }}-ccache-${{ matrix.compiler }}-${{ runner.arch }}- - name: Setup dependencies run: | echo "Types: deb" | sudo tee -a /etc/apt/sources.list.d/ubuntu.sources echo "URIs: ${{ matrix.os == 'ubuntu-24.04-arm' && 'http://ports.ubuntu.com/ubuntu-ports' || 'http://azure.archive.ubuntu.com/ubuntu/' }}" | sudo tee -a /etc/apt/sources.list.d/ubuntu.sources echo "Suites: plucky plucky-updates plucky-security" | sudo tee -a /etc/apt/sources.list.d/ubuntu.sources echo "Components: main restricted universe multiverse" | sudo tee -a /etc/apt/sources.list.d/ubuntu.sources echo "Signed-By: /usr/share/keyrings/ubuntu-archive-keyring.gpg" | sudo tee -a /etc/apt/sources.list.d/ubuntu.sources sudo apt update sudo apt install -y cmake build-essential libunwind-dev \ libvulkan-dev vulkan-validationlayers \ libsox-dev ninja-build libasound2-dev libglfw3-dev nasm libudev-dev \ libpulse-dev libopenal-dev libglew-dev zlib1g-dev libedit-dev \ libevdev-dev libjack-dev libsndio-dev libglvnd-dev \ qt6-base-dev qt6-svg-dev qt6-base-private-dev qt6-multimedia-dev \ clang lld gcc-14 g++-14 \ - name: Build run: | ${{ matrix.build_sh }} RX_VERSION=`cat .rx.version | awk -F'-' '{print $1}'` RX_SHA=`cat .rx.version | awk -F'-' '{print $5}'` echo "RX_VERSION=$RX_VERSION" >> "${{ github.env }}" echo "RX_SHA=$RX_SHA" >> "${{ github.env }}" mv RPCS3-Qt-UI.AppImage RPCS3-Qt-UI-Linux-${{ runner.arch }}-${{ matrix.compiler }}.AppImage - name: Upload artifacts uses: actions/upload-artifact@main with: name: RPCS3 Qt UI (Legacy) for Linux (${{ runner.arch }}, ${{ matrix.compiler }}) path: RPCS3-Qt-UI-Linux-${{ runner.arch }}-${{ matrix.compiler }}.AppImage compression-level: 0 - name: Deploy build uses: softprops/action-gh-release@v2 if: | github.event_name != 'pull_request' && github.ref == 'refs/heads/master' && github.repository == 'RPCSX/rpcsx' with: prerelease: false make_latest: true repository: RPCSX/rpcsx-build token: ${{ secrets.BUILD_TOKEN }} tag_name: v${{ env.RX_VERSION }}-${{ env.RX_SHA }} files: RPCS3-Qt-UI-Linux-${{ runner.arch }}-${{ matrix.compiler }}.AppImage body: ${{ github.server_url }}/${{ github.repository }}/commit/${{ github.sha }} Windows_Build: name: RPCS3 Qt UI (Legacy) for Windows runs-on: windows-2025 env: COMPILER: msvc QT_VER_MAIN: '6' QT_VER: '6.8.3' QT_VER_MSVC: 'msvc2022' QT_DATE: '202503201308' LLVM_VER: '19.1.7' VULKAN_VER: '1.3.268.0' VULKAN_SDK_SHA: '8459ef49bd06b697115ddd3d97c9aec729e849cd775f5be70897718a9b3b9db5' CCACHE_SHA: '1f39f3ad5aae3fe915e99ad1302633bc8f6718e58fa7c0de2b0ba7e080f0f08c' CCACHE_BIN_DIR: 'C:\ccache_bin' CCACHE_DIR: 'C:\ccache' CCACHE_INODECACHE: 'true' CCACHE_SLOPPINESS: 'time_macros' DEPS_CACHE_DIR: ./dependency_cache RX_VERSION: 'Unknown' RX_SHA: 'Unknown' steps: - name: Checkout repository uses: actions/checkout@main with: fetch-depth: 0 - name: Setup env run: | echo "QTDIR=C:\Qt\${{ env.QT_VER }}\${{ env.QT_VER_MSVC }}_64" >> ${{ github.env }} echo "VULKAN_SDK=C:\VulkanSDK\${{ env.VULKAN_VER }}" >> ${{ github.env }} # - name: Get Cache Keys # run: .ci/get_keys-windows.sh # - name: Setup Build Ccache # uses: actions/cache@main # with: # path: ${{ env.CCACHE_DIR }} # key: "${{ runner.os }}-ccache-${{ env.COMPILER }}-${{github.run_id}}" # restore-keys: ${{ runner.os }}-ccache-${{ env.COMPILER }}- # - name: Setup Dependencies Cache # uses: actions/cache@main # with: # path: ${{ env.DEPS_CACHE_DIR }} # key: "${{ runner.os }}-${{ env.COMPILER }}-${{ env.QT_VER }}-${{ env.VULKAN_SDK_SHA }}-${{ env.CCACHE_SHA }}-${{ hashFiles('llvm.lock') }}-${{ hashFiles('glslang.lock') }}" # restore-keys: ${{ runner.os }}-${{ env.COMPILER }}- - name: Download and unpack dependencies run: .ci/setup-windows.sh - name: Export Variables run: | while IFS='=' read -r key val; do # Skip lines that are empty or start with '#' [[ -z "$key" || "$key" =~ ^# ]] && continue echo "$key=$val" >> "${{ github.env }}" done < .ci/ci-vars.env # - name: Add msbuild to PATH # uses: microsoft/setup-msbuild@main - name: Configure run: | cmake -B build-msvc -DCMAKE_POLICY_VERSION_MINIMUM=3.5 -DWITH_RPCSX=off -DWITH_RPCS3=on -DWITH_RPCS3_QT_UI=on -DCMAKE_CONFIGURATION_TYPES="Debug;Release" -DCMAKE_INSTALL_PREFIX="${sourceDir}/out/install/${presetName}" -DUSE_NATIVE_INSTRUCTIONS=on -DUSE_PRECOMPILED_HEADERS=on -DUSE_FAUDIO=off -DUSE_SYSTEM_CURL=off -DUSE_SYSTEM_ZLIB=off -DUSE_SYSTEM_OPENAL=off -DUSE_SYSTEM_OPENCV=off -DBUILD_LLVM=on -DSTATIC_LINK_LLVM=on - name: Export Version run: | RX_VERSION=`cat .rx.version | awk -F'-' '{print $1}'` RX_SHA=`cat .rx.version | awk -F'-' '{print $5}'` echo "RX_VERSION=$RX_VERSION" >> "${{ github.env }}" echo "RX_SHA=$RX_SHA" >> "${{ github.env }}" - name: Build run: | cmake --build build-msvc --config Release - name: Pack up build artifacts run: | mkdir -p "${{ env.BUILD_ARTIFACTSTAGINGDIRECTORY }}" .ci/deploy-windows.sh mv RPCS3-Qt-UI.7z RPCS3-Qt-UI-Windows-${{ runner.arch }}-${{ env.COMPILER }}.7z - name: Upload artifacts (7z) uses: actions/upload-artifact@main with: name: RPCS3 Qt UI (Legacy) for Windows (MSVC) path: RPCS3-Qt-UI-Windows-${{ runner.arch }}-${{ env.COMPILER }}.7z compression-level: 0 if-no-files-found: error - name: Deploy build uses: softprops/action-gh-release@v2 if: | github.event_name != 'pull_request' && github.ref == 'refs/heads/master' && github.repository == 'RPCSX/rpcsx' with: prerelease: false make_latest: true repository: RPCSX/rpcsx-build token: ${{ secrets.BUILD_TOKEN }} tag_name: v${{ env.RX_VERSION }}-${{ env.RX_SHA }} files: RPCS3-Qt-UI-Windows-${{ runner.arch }}-${{ env.COMPILER }}.7z body: ${{ github.server_url }}/${{ github.repository }}/commit/${{ github.sha }}