Compare commits

..
12 Commits
Author SHA1 Message Date
IlyStalker 3176f6b945 123 2026-08-17 02:04:36 +03:00
IlyStalker d806fff8db 123 2026-08-17 01:58:10 +03:00
IlyStalker ac1d152058 123 2026-08-17 01:54:41 +03:00
IlyStalker f501ddc37a 123 2026-08-17 01:52:31 +03:00
IlyStalker 1e0dd72b0e 123 2026-08-17 01:31:08 +03:00
IlyStalker ed67b79bca 123 2026-08-17 01:27:32 +03:00
IlyStalker 2523bb7623 j,yjdktybt c,jhobrf 2026-08-17 01:23:04 +03:00
IlyStalker 3e62381a27 j,yjdktybt fdnjc,jhobrf 2026-08-17 01:10:28 +03:00
IlyStalker 9eb11ccc2e автосборщик 2026-08-17 01:06:01 +03:00
IlyStalker e8cfc077ba обновление автосборщика 2026-08-17 00:29:11 +03:00
IlyStalker fa64871327 Добавление readme 2026-08-16 22:13:20 +03:00
IlyStalker 8a4e8420a1 настройка автосборки 2026-08-16 22:07:34 +03:00
1344 changed files with 175 additions and 65 deletions
+158 -59
View File
@@ -1,105 +1,204 @@
name: Nightly Build name: Nightly Build (Linux)
on: on:
schedule: schedule:
# 01:00 MSK = 22:00 UTC предыдущего дня # 01:00 MSK = 22:00 UTC предыдущего дня
- cron: '0 22 * * *' - cron: '0 22 * * *'
workflow_dispatch: # Ручной запуск для тестов workflow_dispatch:
inputs:
force_build:
description: 'Force build even without recent changes'
type: boolean
default: false
env:
PROJECT_NAME: Game_2
BUILD_CONFIG: Shipping
ENGINE_DIR: /opt/unreal-engine
RETENTION_DAYS: 7
jobs: jobs:
check-changes: check-changes:
runs-on: ubuntu-latest runs-on: ubuntu-latest
outputs: outputs:
changed: ${{ steps.check.outputs.changed }} should_build: ${{ steps.check.outputs.should_build }}
commit_count: ${{ steps.check.outputs.commit_count }}
last_commit: ${{ steps.check.outputs.last_commit }}
steps: steps:
- uses: actions/checkout@v4 - name: Checkout repository
uses: actions/checkout@v4
with: with:
fetch-depth: 2 fetch-depth: 2
- name: Check for changes in last 24h - name: Check for changes in last 24 hours
id: check id: check
run: | run: |
# Проверяем, были ли коммиты за последние 24 часа FORCE="${{ github.event.inputs.force_build }}"
CHANGES=$(git log --since="24 hours ago" --oneline | wc -l)
if [ "$FORCE" = "true" ]; then
echo "should_build=true" >> $GITHUB_OUTPUT
echo "commit_count=forced" >> $GITHUB_OUTPUT
echo "last_commit=$(git rev-parse --short HEAD)" >> $GITHUB_OUTPUT
echo "🔧 Force build requested"
exit 0
fi
CHANGES=$(git log --since="24 hours ago" --oneline 2>/dev/null | wc -l)
LAST_COMMIT=$(git rev-parse --short HEAD)
if [ "$CHANGES" -gt 0 ]; then if [ "$CHANGES" -gt 0 ]; then
echo "changed=true" >> $GITHUB_OUTPUT echo "should_build=true" >> $GITHUB_OUTPUT
echo "Found $CHANGES commits in last 24h" echo "commit_count=$CHANGES" >> $GITHUB_OUTPUT
echo "last_commit=$LAST_COMMIT" >> $GITHUB_OUTPUT
echo "✅ Found $CHANGES commits in last 24h"
else else
echo "changed=false" >> $GITHUB_OUTPUT echo "should_build=false" >> $GITHUB_OUTPUT
echo "No recent changes, skipping build" echo "commit_count=0" >> $GITHUB_OUTPUT
echo "last_commit=$LAST_COMMIT" >> $GITHUB_OUTPUT
echo "⏭️ No recent changes, skipping build"
fi fi
build-linux: build-linux:
needs: check-changes needs: check-changes
if: needs.check-changes.outputs.changed == 'true' if: needs.check-changes.outputs.should_build == 'true'
runs-on: ubuntu-runner # ← имя вашего Linux-раннера в Gitea runs-on: ubuntu-latest
timeout-minutes: 120 timeout-minutes: 180
container:
image: node:20-bookworm
options: -v /mnt/0948cd7e-e5a9-4d99-9bcc-459c8361e842/docker-container/Gitea/runner-programm/unreal-engine/UE-5.8.1:/opt/unreal-engine:ro --user root
steps: steps:
- uses: actions/checkout@v4 # ✅ УСТАНОВКА GIT-LFS ДО CHECKOUT
- name: Install git-lfs
run: apt-get update && apt-get install -y git-lfs && git lfs install
- name: Checkout repository
uses: actions/checkout@v4
with: with:
lfs: true lfs: true
- name: Pull LFS files - name: Pull LFS files
run: git lfs pull
- name: Build Linux Shipping
run: | run: |
ENGINE_DIR="/opt/unreal-engine/UE-5.8.1" git lfs pull
PROJECT="$(pwd)/YourGame.uproject" echo "📦 LFS files pulled"
- name: Verify UE5 engine mount
run: |
if [ ! -f "$ENGINE_DIR/Engine/Build/BatchFiles/Linux/Build.sh" ]; then
echo "::error::UE5 Build.sh not found at $ENGINE_DIR"
echo "::error::Check docker-compose volume mount for /opt/unreal-engine"
exit 1
fi
# Проверка версии движка
VERSION_FILE="$ENGINE_DIR/Engine/Source/Runtime/Launch/Resources/Version.h"
if [ -f "$VERSION_FILE" ]; then
ENGINE_VER=$(grep "ENGINE_MAJOR_VERSION\|ENGINE_MINOR_VERSION\|ENGINE_PATCH_VERSION" "$VERSION_FILE" | head -3 | tr '\n' '.' | sed 's/[^0-9.]//g')
echo "🎮 UE5 Version: $ENGINE_VER"
fi
echo "✅ UE5 engine verified at $ENGINE_DIR"
- name: Clean previous build artifacts
run: |
rm -rf Binaries/Linux Intermediate/Build/Linux
echo "🧹 Previous artifacts cleaned"
- name: Build Linux ${{ env.BUILD_CONFIG }}
run: |
SHORT_SHA="${{ github.sha }}"
ARCHIVE_NAME="${PROJECT_NAME}-Linux-${SHORT_SHA::7}.tar.gz"
echo "🔨 Starting build: $PROJECT_NAME Linux $BUILD_CONFIG"
echo "📁 Project: $(pwd)/${PROJECT_NAME}.uproject"
echo "📦 Output: $ARCHIVE_NAME"
"$ENGINE_DIR/Engine/Build/BatchFiles/Linux/Build.sh" \ "$ENGINE_DIR/Engine/Build/BatchFiles/Linux/Build.sh" \
YourGame Linux Shipping \ "${PROJECT_NAME}" \
-Project="$PROJECT" \ Linux \
-NoP4 -UTF8Output -Clean "${BUILD_CONFIG}" \
-Project="$(pwd)/${PROJECT_NAME}.uproject" \
-NoP4 \
-UTF8Output \
-Clean \
-SkipVulkanDeviceExtensions=VK_KHR_swapchain_mutable_format
# Архивация билда # Архивация билда
ARCHIVE_NAME="YourGame-Linux-${{ github.sha::7 }}.tar.gz" if [ -d "Binaries/Linux" ]; then
tar -czf "$ARCHIVE_NAME" \ tar -czf "$ARCHIVE_NAME" \
-C Binaries/Linux \ -C Binaries/Linux \
YourGame-Linux-Shipping \ . \
../Content/Paks/* ../../Content/Paks/* 2>/dev/null || true
echo "LINUX_ARTIFACT=$ARCHIVE_NAME" >> $GITHUB_ENV SIZE=$(du -h "$ARCHIVE_NAME" | cut -f1)
echo "📦 Archive created: $ARCHIVE_NAME ($SIZE)"
echo "ARCHIVE_NAME=$ARCHIVE_NAME" >> $GITHUB_ENV
else
echo "::error::Build output directory not found"
exit 1
fi
- name: Upload Linux artifact - name: Upload Linux artifact
uses: actions/upload-artifact@v4 uses: actions/upload-artifact@v4
with: with:
name: linux-build name: linux-build
path: ${{ env.LINUX_ARTIFACT }} path: ${{ env.ARCHIVE_NAME }}
retention-days: 7 retention-days: ${{ env.RETENTION_DAYS }}
compression-level: 6
build-windows: release:
needs: check-changes needs: [check-changes, build-linux]
if: needs.check-changes.outputs.changed == 'true' if: always() && needs.build-linux.result == 'success'
runs-on: windows-runner # ← имя вашего Windows-раннера в Gitea runs-on: ubuntu-latest
timeout-minutes: 180 permissions:
contents: write
steps: steps:
- uses: actions/checkout@v4 - name: Download build artifact
uses: actions/download-artifact@v4
with: with:
lfs: true name: linux-build
- name: Pull LFS files - name: Generate release metadata
run: git lfs pull id: meta
- name: Build Windows Shipping
shell: cmd
run: | run: |
set ENGINE_DIR=C:\Program Files\Epic Games\UE_5.8.1 DATE=$(date +'%Y%m%d')
set PROJECT=%CD%\YourGame.uproject SHA_SHORT="${{ github.sha }}"
TAG="nightly-${DATE}-${SHA_SHORT::7}"
call "%ENGINE_DIR%\Engine\Build\BatchFiles\Build.bat" ^ echo "tag=$TAG" >> $GITHUB_OUTPUT
YourGame Win64 Shipping ^ echo "date=$DATE" >> $GITHUB_OUTPUT
-Project="%PROJECT%" ^ echo "sha_short=${SHA_SHORT::7}" >> $GITHUB_OUTPUT
-NoP4 -UTF8Output -Clean
:: Архивация # Список файлов для загрузки
set ARCHIVE_NAME=YourGame-Win64-%GITHUB_SHA:~0,7%.zip FILES=$(ls *.tar.gz 2>/dev/null | tr '\n' '\n')
powershell Compress-Archive -Path "Binaries\Win64\*" -DestinationPath "%ARCHIVE_NAME%" echo "files<<EOF" >> $GITHUB_OUTPUT
echo "$FILES" >> $GITHUB_OUTPUT
echo "EOF" >> $GITHUB_OUTPUT
echo LINUX_ARTIFACT=%ARCHIVE_NAME% >> %GITHUB_ENV% - name: Create Nightly Release
uses: softprops/action-gh-release@v2
- name: Upload Windows artifact
uses: actions/upload-artifact@v4
with: with:
name: windows-build tag_name: ${{ steps.meta.outputs.tag }}
path: ${{ env.WINDOWS_ARTIFACT }} name: "🌙 Nightly ${{ steps.meta.outputs.date }} (${{ steps.meta.outputs.sha_short }})"
retention-days: 7 body: |
## 🌙 Nightly Build — Linux
| Property | Value |
|----------|-------|
| **Platform** | Linux (x64) |
| **Config** | ${{ env.BUILD_CONFIG }} |
| **Commit** | `${{ github.sha }}` |
| **Date** | ${{ steps.meta.outputs.date }} |
| **Changes** | ${{ needs.check-changes.outputs.commit_count }} commits |
### 📥 Downloads
- 🐧 **Linux:** `${{ env.PROJECT_NAME }}-Linux-${{ steps.meta.outputs.sha_short }}.tar.gz`
---
> ⚠️ Auto-generated nightly build. May be unstable.
> Built with UE5 from `/opt/unreal-engine` via Docker volume mount.
draft: false
prerelease: true
files: ${{ steps.meta.outputs.files }}
env:
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
+4
View File
@@ -9,3 +9,7 @@ CommonUI.FallbackToDesiredOnAutoRestoreFailure=1
[/Script/EngineSettings.GeneralProjectSettings] [/Script/EngineSettings.GeneralProjectSettings]
ProjectID=01A00AC6F0CF762A9C2326BFE6D75031 ProjectID=01A00AC6F0CF762A9C2326BFE6D75031
[/Script/UnrealEd.ProjectPackagingSettings]
bGenerateChunks=True

Some files were not shown because too many files have changed in this diff Show More