lyra_game_ue/.gitea/workflows/unreal-build.yml
Goran Lazarevski 5a5f60cf66
Some checks failed
Unreal Engine Build / macos-build (push) Has been cancelled
Unreal Engine Build / windows-build (push) Failing after 6m41s
Test windwos build
2025-03-24 15:27:59 +01:00

155 lines
5.5 KiB
YAML

name: Unreal Engine Build
on:
push:
branches: [ main, develop ]
pull_request:
branches: [ main, develop ]
jobs:
windows-build:
runs-on: windows
steps:
- name: Checkout repository
uses: actions/checkout@v3
with:
lfs: true
fetch-depth: 0
- name: Set Unreal Engine Path
run: |
echo "UE_ROOT=F:\LuckyRobots\LuckyRobots\Engine" >> $Env:GITHUB_ENV
echo "DOTNET_CLI_HOME=$env:TEMP" >> $Env:GITHUB_ENV
echo "MSBUILDDISABLENODEREUSE=1" >> $Env:GITHUB_ENV
echo "DOTNET_SKIP_FIRST_TIME_EXPERIENCE=1" >> $Env:GITHUB_ENV
echo "DOTNET_CLI_TELEMETRY_OPTOUT=1" >> $Env:GITHUB_ENV
echo "DOTNET_BUILD_OUTPUT_DIR=$env:TEMP\dotnet-build" >> $Env:GITHUB_ENV
- name: Set up build environment
run: |
# Create build directories with proper permissions
New-Item -ItemType Directory -Force -Path "$env:TEMP\dotnet-build"
icacls "$env:TEMP\dotnet-build" /grant Everyone:F
# Set permissions on Engine directories
$engineDirs = @(
"$env:UE_ROOT\Source\Programs\Shared\EpicGames.Core",
"$env:UE_ROOT\Source\Programs\Shared\EpicGames.OIDC",
"$env:UE_ROOT\Source\Programs\Shared\EpicGames.Oodle",
"$env:UE_ROOT\Source\Programs\Shared\EpicGames.UBA"
)
foreach ($dir in $engineDirs) {
if (Test-Path $dir) {
icacls $dir /grant Everyone:F /T
}
}
# Clean .NET build cache
dotnet nuget locals all --clear
dotnet build --clean
- name: Locate .uproject file
run: |
$UPROJECT_PATH = Get-ChildItem -Path "UNREAL_PROJECTS" -Filter "*.uproject" -Recurse | Select-Object -First 1 -ExpandProperty FullName
echo "UPROJECT_PATH=$UPROJECT_PATH" >> $Env:GITHUB_ENV
Write-Host "Found project file: $UPROJECT_PATH"
- name: Build Unreal Project
run: |
# Create and set permissions for build output directory
New-Item -ItemType Directory -Force -Path "$PWD\BuildOutput"
icacls "$PWD\BuildOutput" /grant Everyone:F
# Run the build with elevated permissions
Start-Process -FilePath "$Env:UE_ROOT\Build\BatchFiles\RunUAT.bat" `
-ArgumentList "BuildCookRun -project=`"$Env:UPROJECT_PATH`" -noP4 -platform=Win64 -clientconfig=Development -cook -build -stage -pak -archive -archivedirectory=`"$PWD\BuildOutput`"" `
-Verb RunAs `
-Wait `
-NoNewWindow
- name: Upload build artifacts
uses: actions/upload-artifact@v3
with:
name: windows-build
path: BuildOutput/
retention-days: 7
macos-build:
runs-on: macos
steps:
- name: Checkout repository
uses: actions/checkout@v3
with:
lfs: true
fetch-depth: 0
- name: Setup Unreal Engine
run: |
# Use the correct path where Unreal Engine is installed
UE_PATH="/Users/Shared/Epic Games/UE_5.5"
if [ ! -d "$UE_PATH" ]; then
echo "Error: Unreal Engine is not installed in the expected location"
echo "Please ensure Unreal Engine is installed at $UE_PATH"
exit 1
fi
# Set environment variable with the correct Engine path
echo "UE_ROOT=$UE_PATH/Engine" >> $GITHUB_ENV
echo "Using Unreal Engine 5.5"
- name: Build Unreal Project
run: |
# Debug information
echo "=== Environment Information ==="
echo "macOS Version:"
sw_vers
echo "Current working directory: $(pwd)"
ls -la # List all files in current directory
echo "=== Unreal Engine Information ==="
ls -la "$UE_ROOT/Build/BatchFiles"
echo "=== Project Information ==="
# Detailed search for the project file
echo "Searching for .uproject files:"
find . -name "*.uproject" -type f
# Get the absolute path of the project file
UPROJECT_PATH=$(find . -name "*.uproject" -type f | head -1)
if [ -z "$UPROJECT_PATH" ]; then
echo "Error: Could not find .uproject file"
exit 1
fi
# Convert to absolute path and verify file exists
UPROJECT_ABSOLUTE_PATH=$(realpath "$UPROJECT_PATH")
echo "Project absolute path: $UPROJECT_ABSOLUTE_PATH"
if [ ! -f "$UPROJECT_ABSOLUTE_PATH" ]; then
echo "Error: Project file does not exist at: $UPROJECT_ABSOLUTE_PATH"
exit 1
fi
echo "Using Unreal Engine at: $UE_ROOT"
# Make the project file readable and executable
chmod 755 "$UPROJECT_ABSOLUTE_PATH"
# Run the build using absolute paths
chmod +x "$UE_ROOT/Build/BatchFiles/RunUAT.sh"
"$UE_ROOT/Build/BatchFiles/RunUAT.sh" BuildCookRun \
-project="$UPROJECT_ABSOLUTE_PATH" \
-noP4 \
-platform=Mac \
-clientconfig=Development \
-cook -build -stage -pak -archive \
-archivedirectory="$(pwd)/Build"
- name: Upload build artifacts
uses: actions/upload-artifact@v3
with:
name: macos-build
path: Build/
retention-days: 7