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 - 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: | & "$Env:UE_ROOT\Build\BatchFiles\RunUAT.bat" BuildCookRun ` -project="$Env:UPROJECT_PATH" ` -noP4 ` -platform=Win64 ` -clientconfig=Development ` -cook -build -stage -pak -archive ` -archivedirectory="${PWD}\StagedBuilds" - name: Upload build artifacts uses: actions/upload-artifact@v3 with: name: windows-build path: StagedBuilds/ 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