From 919703472cac62fa281ce9d66eea67ea329c6ff1 Mon Sep 17 00:00:00 2001 From: DH Date: Wed, 9 Apr 2025 22:14:51 +0300 Subject: [PATCH] Deploy dev builds to https://github.com/RPCSX/rpcsx-build --- .ci/deploy-linux.sh | 22 +------- .ci/deploy-windows.sh | 18 +------ .github/workflows/rpcs3.yml | 102 +++++++++++++++++++++++++++--------- rx/CMakeLists.txt | 2 +- 4 files changed, 81 insertions(+), 63 deletions(-) diff --git a/.ci/deploy-linux.sh b/.ci/deploy-linux.sh index 38a1d3e05..e95c25a97 100755 --- a/.ci/deploy-linux.sh +++ b/.ci/deploy-linux.sh @@ -31,25 +31,5 @@ if [ "$DEPLOY_APPIMAGE" = "true" ]; then linuxdeploy --appimage-extract ./squashfs-root/plugins/linuxdeploy-plugin-appimage/usr/bin/appimagetool AppDir -g - APPIMAGE_SUFFIX="linux_${CPU_ARCH}" - if [ "$CPU_ARCH" = "x86_64" ]; then - # Preserve back compat. Previous versions never included the full arch. - APPIMAGE_SUFFIX="linux64" - fi - - COMM_TAG=$(awk '/version{.*}/ { printf("%d.%d.%d", $5, $6, $7) }' ../rpcs3/rpcs3_version.cpp) - COMM_COUNT="$(git rev-list --count HEAD)" - COMM_HASH="$(git rev-parse --short=8 HEAD)" - RPCS3_APPIMAGE="rpcs3-v${COMM_TAG}-${COMM_COUNT}-${COMM_HASH}_${APPIMAGE_SUFFIX}.AppImage" - - mv ./RPCS3*.AppImage "$RPCS3_APPIMAGE" - - # If we're building using a CI, let's copy over the AppImage artifact - if [ -n "$BUILD_ARTIFACTSTAGINGDIRECTORY" ]; then - cp "$RPCS3_APPIMAGE" "$ARTDIR" - fi - - FILESIZE=$(stat -c %s ./rpcs3*.AppImage) - SHA256SUM=$(sha256sum ./rpcs3*.AppImage | awk '{ print $1 }') - echo "${SHA256SUM};${FILESIZE}B" > "$RELEASE_MESSAGE" + mv ./*.AppImage ../RPCS3-Qt-UI.AppImage fi diff --git a/.ci/deploy-windows.sh b/.ci/deploy-windows.sh index a8a3f6b97..c4e88e8f2 100755 --- a/.ci/deploy-windows.sh +++ b/.ci/deploy-windows.sh @@ -3,31 +3,17 @@ # First let's see print some info about our caches "$(cygpath -u "$CCACHE_BIN_DIR")"/ccache.exe --show-stats -v -# BUILD_blablabla is Azure specific, so we wrap it for portability -ARTIFACT_DIR="$BUILD_ARTIFACTSTAGINGDIRECTORY" - # Remove unecessary files rm -f ./rpcs3/bin/rpcs3.exp ./rpcs3/bin/rpcs3.lib ./rpcs3/bin/rpcs3.pdb ./rpcs3/bin/vc_redist.x64.exe rm -rf ./rpcs3/bin/git # Prepare compatibility and SDL database for packaging -mkdir ./rpcs3/bin/config -mkdir ./rpcs3/bin/config/input_configs +mkdir -p ./rpcs3/bin/config/input_configs curl -fsSL 'https://raw.githubusercontent.com/gabomdq/SDL_GameControllerDB/master/gamecontrollerdb.txt' 1> ./rpcs3/bin/config/input_configs/gamecontrollerdb.txt -curl -fsSL 'https://rpcs3.net/compatibility?api=v1&export' | iconv -t UTF-8 1> ./rpcs3/bin/GuiConfigs/compat_database.dat cp -rf ./build-msvc/bin/ ./rpcs3/bin/ -# Download SSL certificate (not needed with CURLSSLOPT_NATIVE_CA) -#curl -fsSL 'https://curl.haxx.se/ca/cacert.pem' 1> ./bin/cacert.pem - # Package artifacts 7z a -m0=LZMA2 -mx9 "$BUILD" ./rpcs3/bin/* -# Generate sha256 hashes -# Write to file for GitHub releases -sha256sum "$BUILD" | awk '{ print $1 }' | tee "$BUILD.sha256" -echo "$(cat "$BUILD.sha256");$(stat -c %s "$BUILD")B" > GitHubReleaseMessage.txt - # Move files to publishing directory -cp -- "$BUILD" "$ARTIFACT_DIR" -cp -- "$BUILD.sha256" "$ARTIFACT_DIR" +cp -- "$BUILD" ./RPCS3-Qt-UI.7z diff --git a/.github/workflows/rpcs3.yml b/.github/workflows/rpcs3.yml index a740b3160..eec8801ec 100644 --- a/.github/workflows/rpcs3.yml +++ b/.github/workflows/rpcs3.yml @@ -1,4 +1,4 @@ -name: Build RPCS3 +name: Build RPCS3 Qt UI (Legacy) defaults: run: @@ -36,7 +36,7 @@ jobs: docker_img: "rpcs3/rpcs3-ci-jammy-aarch64:1.4" build_sh: "rpcs3/.ci/build-linux-aarch64.sh" compiler: clang - name: RPCS3 QT UI for Linux ${{ matrix.os }} ${{ matrix.compiler }} + name: RPCS3 Qt UI (Legacy) for Linux ${{ matrix.os }} ${{ matrix.compiler }} runs-on: ${{ matrix.os }} env: CCACHE_DIR: ${{ github.workspace }}/ccache @@ -46,6 +46,8 @@ jobs: ARTDIR: "/root/artifacts" RELEASE_MESSAGE: "/rpcs3/GitHubReleaseMessage.txt" COMPILER: ${{ matrix.compiler }} + RX_VERSION: "Unknown" + RX_SHA: "Unknown" steps: - name: Checkout repository uses: actions/checkout@main @@ -71,15 +73,38 @@ jobs: ${{ matrix.docker_img }} \ ${{ 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 for Linux (${{ runner.arch }}, ${{ matrix.compiler }}) - path: ${{ env.BUILD_ARTIFACTSTAGINGDIRECTORY }}/*.AppImage + 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 Windows + name: RPCS3 Qt UI (Legacy) for Windows runs-on: windows-2025 env: COMPILER: msvc @@ -96,8 +121,8 @@ jobs: CCACHE_INODECACHE: 'true' CCACHE_SLOPPINESS: 'time_macros' DEPS_CACHE_DIR: ./dependency_cache - steps: + steps: - name: Checkout repository uses: actions/checkout@main with: @@ -108,22 +133,22 @@ jobs: 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: 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 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: 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 @@ -136,23 +161,50 @@ jobs: echo "$key=$val" >> "${{ github.env }}" done < .ci/ci-vars.env - - name: Add msbuild to PATH - uses: microsoft/setup-msbuild@main + # - name: Add msbuild to PATH + # uses: microsoft/setup-msbuild@main - - name: Compile RPCS3 QT UI + - 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 for Windows (MSVC) - path: ${{ env.BUILD_ARTIFACTSTAGINGDIRECTORY }} + 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 }} diff --git a/rx/CMakeLists.txt b/rx/CMakeLists.txt index ead683076..c3ac34840 100644 --- a/rx/CMakeLists.txt +++ b/rx/CMakeLists.txt @@ -54,4 +54,4 @@ target_compile_definitions(${PROJECT_NAME} PRIVATE ) -file(WRITE "${CMAKE_SOURCE_DIR}/.rx.version" "${GIT_DATE}-${RX_TAG}-${RX_TAG_VERSION}-${GIT_BRANCH}-0x${GIT_REV}-${GIT_DIRTY}") +file(WRITE "${CMAKE_SOURCE_DIR}/.rx.version" "${GIT_DATE}-${RX_TAG}-${RX_TAG_VERSION}-${GIT_BRANCH}-${GIT_REV}-${GIT_DIRTY}")