From 9e535da8a2f03fec6dc91235c8a034542a104f8c Mon Sep 17 00:00:00 2001 From: Goran Lazarevski Date: Sun, 23 Mar 2025 18:29:51 +0100 Subject: [PATCH] Test windwos build --- .gitea/workflows/unreal-build.yml | 100 +++++++++++++++++++----------- 1 file changed, 65 insertions(+), 35 deletions(-) diff --git a/.gitea/workflows/unreal-build.yml b/.gitea/workflows/unreal-build.yml index 834d9f1b..ae8c17dc 100644 --- a/.gitea/workflows/unreal-build.yml +++ b/.gitea/workflows/unreal-build.yml @@ -7,48 +7,78 @@ on: branches: [ main, develop ] jobs: - # windows-build: - # runs-on: windows - # steps: - # - name: Checkout repository - # uses: actions/checkout@v3 - # with: - # lfs: true - # fetch-depth: 0 # Get all history to properly handle UE dependencies + windows-build: + runs-on: windows + steps: + - name: Checkout repository + uses: actions/checkout@v3 + with: + lfs: true + fetch-depth: 0 - # - name: Setup Unreal Engine - # run: | - # # Ensure Unreal Engine is installed and set up - # # This assumes you have Unreal Engine installed on your runner - # # If not, you can add installation steps here + - 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 environment variables for Unreal Engine - # echo "UE_ROOT=C:\Program Files\Epic Games\UE_5.2" >> $GITHUB_ENV + # 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" + ) - # - name: Build Unreal Project - # run: | - # # Find your .uproject file (adjust path as needed) - # $UPROJECT_PATH = Get-ChildItem -Path . -Filter "*.uproject" -Recurse | Select-Object -First 1 -ExpandProperty FullName - # Write-Host "Building project: $UPROJECT_PATH" + foreach ($dir in $engineDirs) { + if (Test-Path $dir) { + icacls $dir /grant Everyone:F /T + } + } - # # Use Unreal Automation Tool to build the project - # & "$env:UE_ROOT\Engine\Build\BatchFiles\RunUAT.bat" BuildCookRun ` - # -project="$UPROJECT_PATH" ` - # -noP4 ` - # -platform=Win64 ` - # -clientconfig=Development ` - # -cook -build -stage -pak -archive ` - # -archivedirectory="$PWD\Build" - - # - name: Upload build artifacts - # uses: actions/upload-artifact@v3 - # with: - # name: windows-build - # path: Build/ - # retention-days: 7 + # Clean .NET build cache + dotnet nuget locals all --clear + # Remove any existing build artifacts + Remove-Item -Path "$env:TEMP\dotnet-build\*" -Recurse -Force -ErrorAction SilentlyContinue + + - 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 + skip: true steps: - name: Checkout repository uses: actions/checkout@v3