From 4dcc1350b524a96c10c4534af1b089b98705fcb1 Mon Sep 17 00:00:00 2001 From: IlyStalker Date: Sun, 16 Aug 2026 21:33:28 +0300 Subject: [PATCH] Configure Git LFS for UE5 assets 2 --- .gitea/workflows/nightly-build.yml | 105 +++++++++++++++++++++++++++++ 1 file changed, 105 insertions(+) create mode 100644 .gitea/workflows/nightly-build.yml diff --git a/.gitea/workflows/nightly-build.yml b/.gitea/workflows/nightly-build.yml new file mode 100644 index 0000000..2263f90 --- /dev/null +++ b/.gitea/workflows/nightly-build.yml @@ -0,0 +1,105 @@ +name: Nightly Build +on: + schedule: + # 01:00 MSK = 22:00 UTC предыдущего дня + - cron: '0 22 * * *' + workflow_dispatch: # Ручной запуск для тестов + +jobs: + check-changes: + runs-on: ubuntu-latest + outputs: + changed: ${{ steps.check.outputs.changed }} + steps: + - uses: actions/checkout@v4 + with: + fetch-depth: 2 + + - name: Check for changes in last 24h + id: check + run: | + # Проверяем, были ли коммиты за последние 24 часа + CHANGES=$(git log --since="24 hours ago" --oneline | wc -l) + if [ "$CHANGES" -gt 0 ]; then + echo "changed=true" >> $GITHUB_OUTPUT + echo "Found $CHANGES commits in last 24h" + else + echo "changed=false" >> $GITHUB_OUTPUT + echo "No recent changes, skipping build" + fi + + build-linux: + needs: check-changes + if: needs.check-changes.outputs.changed == 'true' + runs-on: ubuntu-runner # ← имя вашего Linux-раннера в Gitea + timeout-minutes: 120 + steps: + - uses: actions/checkout@v4 + with: + lfs: true + + - name: Pull LFS files + run: git lfs pull + + - name: Build Linux Shipping + run: | + ENGINE_DIR="/opt/unreal-engine/UE-5.8.1" + PROJECT="$(pwd)/YourGame.uproject" + + "$ENGINE_DIR/Engine/Build/BatchFiles/Linux/Build.sh" \ + YourGame Linux Shipping \ + -Project="$PROJECT" \ + -NoP4 -UTF8Output -Clean + + # Архивация билда + ARCHIVE_NAME="YourGame-Linux-${{ github.sha::7 }}.tar.gz" + tar -czf "$ARCHIVE_NAME" \ + -C Binaries/Linux \ + YourGame-Linux-Shipping \ + ../Content/Paks/* + + echo "LINUX_ARTIFACT=$ARCHIVE_NAME" >> $GITHUB_ENV + + - name: Upload Linux artifact + uses: actions/upload-artifact@v4 + with: + name: linux-build + path: ${{ env.LINUX_ARTIFACT }} + retention-days: 7 + + build-windows: + needs: check-changes + if: needs.check-changes.outputs.changed == 'true' + runs-on: windows-runner # ← имя вашего Windows-раннера в Gitea + timeout-minutes: 180 + steps: + - uses: actions/checkout@v4 + with: + lfs: true + + - name: Pull LFS files + run: git lfs pull + + - name: Build Windows Shipping + shell: cmd + run: | + set ENGINE_DIR=C:\Program Files\Epic Games\UE_5.8.1 + set PROJECT=%CD%\YourGame.uproject + + call "%ENGINE_DIR%\Engine\Build\BatchFiles\Build.bat" ^ + YourGame Win64 Shipping ^ + -Project="%PROJECT%" ^ + -NoP4 -UTF8Output -Clean + + :: Архивация + set ARCHIVE_NAME=YourGame-Win64-%GITHUB_SHA:~0,7%.zip + powershell Compress-Archive -Path "Binaries\Win64\*" -DestinationPath "%ARCHIVE_NAME%" + + echo LINUX_ARTIFACT=%ARCHIVE_NAME% >> %GITHUB_ENV% + + - name: Upload Windows artifact + uses: actions/upload-artifact@v4 + with: + name: windows-build + path: ${{ env.WINDOWS_ARTIFACT }} + retention-days: 7 \ No newline at end of file