105 lines
3.2 KiB
YAML
105 lines
3.2 KiB
YAML
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)/Game_2.uproject"
|
|
|
|
"$ENGINE_DIR/Engine/Build/BatchFiles/Linux/Build.sh" \
|
|
YourGame Linux Shipping \
|
|
-Project="$PROJECT" \
|
|
-NoP4 -UTF8Output -Clean
|
|
|
|
# Архивация билда
|
|
ARCHIVE_NAME="Game_2-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%\Game_2.uproject
|
|
|
|
call "%ENGINE_DIR%\Engine\Build\BatchFiles\Build.bat" ^
|
|
YourGame Win64 Shipping ^
|
|
-Project="%PROJECT%" ^
|
|
-NoP4 -UTF8Output -Clean
|
|
|
|
:: Архивация
|
|
set ARCHIVE_NAME=Game_2-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 |