From bd9086e48461d3229f18f2fbc245e0952b1c1009 Mon Sep 17 00:00:00 2001 From: SOULX3X Date: Sun, 19 Jul 2026 05:25:58 +0530 Subject: [PATCH] Auto Build Workflow (#31) * Add GitHub Actions workflow for building KytyPS5 --------- Co-authored-by: nmzik --- .github/workflows/build.yml | 106 ++++++++++++++++++++++++++++++++++++ 1 file changed, 106 insertions(+) create mode 100644 .github/workflows/build.yml diff --git a/.github/workflows/build.yml b/.github/workflows/build.yml new file mode 100644 index 000000000..e582c841c --- /dev/null +++ b/.github/workflows/build.yml @@ -0,0 +1,106 @@ +name: Build KytyPS5 + +on: + workflow_dispatch: + push: + branches: [ main, master ] + pull_request: + +jobs: + build: + runs-on: windows-2022 + + steps: + - name: Checkout repository + uses: actions/checkout@v4 + with: + submodules: recursive + + - name: Setup Visual Studio environment + uses: ilammy/msvc-dev-cmd@v1 + + - name: Setup Ninja + uses: seanmiddleditch/gha-setup-ninja@v5 + + - name: Install Qt 6.10.3 + uses: jurplel/install-qt-action@v4 + with: + version: "6.10.3" + host: windows + target: desktop + arch: win64_msvc2022_64 + cache: true + + - name: Verify toolchain + shell: cmd + run: | + git --version + cmake --version + ninja --version + clang-cl --version + echo Qt6_DIR=%Qt6_DIR% + + - name: Configure + shell: cmd + run: | + cmake -S src -B _Build/windows ^ + -G Ninja ^ + -DCMAKE_BUILD_TYPE=Release ^ + -DCMAKE_C_COMPILER=clang-cl ^ + -DCMAKE_CXX_COMPILER=clang-cl ^ + -DCMAKE_PREFIX_PATH="%Qt6_DIR%" + + - name: Build + shell: cmd + run: | + cmake --build _Build/windows --target launcher --parallel + + - name: Install + shell: cmd + run: | + cmake --install _Build/windows --prefix _Build/windows/install + + - name: Upload Artifacts + uses: actions/upload-artifact@v4 + with: + name: KytyPS5 + path: _Build/windows/install/** + if-no-files-found: error + + release: + if: github.event_name == 'push' + needs: build + runs-on: ubuntu-latest + permissions: + contents: write + + steps: + - name: Download build + uses: actions/download-artifact@v4 + with: + name: KytyPS5 + path: KytyPS5 + + - name: Set release name + shell: bash + run: | + echo "RELEASE_NAME=KytyPS5-$(date -u +'%Y-%m-%d')-${GITHUB_SHA::7}" >> "$GITHUB_ENV" + + - name: Package build + shell: bash + run: zip -r "$RELEASE_NAME.zip" KytyPS5 + + - name: Create release + shell: bash + env: + GH_TOKEN: ${{ github.token }} + run: | + if gh release view "$RELEASE_NAME" --repo "$GITHUB_REPOSITORY" > /dev/null 2>&1; then + gh release upload "$RELEASE_NAME" "$RELEASE_NAME.zip" --clobber --repo "$GITHUB_REPOSITORY" + else + gh release create "$RELEASE_NAME" "$RELEASE_NAME.zip" \ + --generate-notes \ + --repo "$GITHUB_REPOSITORY" \ + --target "$GITHUB_SHA" \ + --title "$RELEASE_NAME" + fi