Compare commits

..

No commits in common. "13e55228d9794084e483f6c9ce20e36f743eaf7b" and "5198f2b094afcd3352d070c957c33574e3833f77" have entirely different histories.

3481 changed files with 2947 additions and 912704 deletions

BIN
.DS_Store vendored

Binary file not shown.

View File

@ -56,77 +56,175 @@ jobs:
fetch-depth: 0 fetch-depth: 0
- name: Setup Unreal Engine - name: Setup Unreal Engine
timeout-minutes: 5 # Add timeout to prevent hanging
run: | run: |
# Use the correct path where Unreal Engine is installed # Set environment variable with the correct Engine path
UE_PATH="/Users/Shared/Epic Games/UE_5.5" UE_PATH="/Users/Shared/Epic Games/UE_5.5"
echo "UE_ROOT=$UE_PATH/Engine" >> $GITHUB_ENV
if [ ! -d "$UE_PATH" ]; then echo "UE_PATH=$UE_PATH" >> $GITHUB_ENV
echo "Error: Unreal Engine is not installed in the expected location" source $GITHUB_ENV
echo "Please ensure Unreal Engine is installed at $UE_PATH"
echo "Unreal Engine paths:"
echo "UE_ROOT=$UE_ROOT"
echo "UE_PATH=$UE_PATH"
# Set up MuJoCo library
MUJOCO_LIB_DIR="Plugins/LuckyMujoco/Source/ThirdParty/Mujoco/lib"
mkdir -p "$MUJOCO_LIB_DIR"
# Try to find mujoco.dylib in the repository
if [ -f "Plugins/UEMujoco.rar" ]; then
echo "Found UEMujoco.rar, attempting to extract..."
mkdir -p /tmp/mujoco_extract
unrar x "Plugins/UEMujoco.rar" /tmp/mujoco_extract || echo "Failed to extract UEMujoco.rar"
# Look for mujoco.dylib in extracted files
DYLIB_PATH=$(find /tmp/mujoco_extract -name "mujoco.dylib" | head -1)
if [ -n "$DYLIB_PATH" ]; then
echo "Found mujoco.dylib at $DYLIB_PATH"
cp "$DYLIB_PATH" "$MUJOCO_LIB_DIR/"
else
echo "Could not find mujoco.dylib in extracted files"
fi
fi
# If still no dylib, try to download it
if [ ! -f "$MUJOCO_LIB_DIR/mujoco.dylib" ]; then
echo "Attempting to download mujoco.dylib..."
curl -L -o "$MUJOCO_LIB_DIR/mujoco.dylib" "https://github.com/deepmind/mujoco/releases/download/2.3.7/mujoco-2.3.7-macos-universal2.dmg"
fi
# Verify the library exists
if [ ! -f "$MUJOCO_LIB_DIR/mujoco.dylib" ]; then
echo "ERROR: Failed to set up mujoco.dylib"
exit 1 exit 1
fi fi
# Set environment variable with the correct Engine path # Make sure the library is executable
echo "UE_ROOT=$UE_PATH/Engine" >> $GITHUB_ENV chmod +x "$MUJOCO_LIB_DIR/mujoco.dylib"
echo "Using Unreal Engine 5.5"
# Try multiple locations for the mujoco library
# 1. Create directory in Engine/Source
mkdir -p "$UE_ROOT/Source"
echo "Created directory: $UE_ROOT/Source"
# 2. Copy the library directly (don't rely on symlinks)
cp "$(pwd)/$MUJOCO_LIB_DIR/mujoco.dylib" "$UE_ROOT/Source/"
echo "Copied library to: $UE_ROOT/Source/mujoco.dylib"
# 3. Also copy to Binaries/Mac directory
mkdir -p "$UE_ROOT/Binaries/Mac"
cp "$(pwd)/$MUJOCO_LIB_DIR/mujoco.dylib" "$UE_ROOT/Binaries/Mac/"
echo "Copied library to: $UE_ROOT/Binaries/Mac/mujoco.dylib"
# 4. Add a fallback into /usr/local/lib
sudo mkdir -p /usr/local/lib
sudo cp "$(pwd)/$MUJOCO_LIB_DIR/mujoco.dylib" /usr/local/lib/
echo "Copied library to: /usr/local/lib/mujoco.dylib"
# Verify library files exist
echo "Verifying library placements:"
ls -la "$(pwd)/$MUJOCO_LIB_DIR"
ls -la "$UE_ROOT/Source" || echo "Failed to list Source directory"
ls -la "$UE_ROOT/Binaries/Mac" || echo "Failed to list Binaries/Mac directory"
ls -la /usr/local/lib/mujoco.dylib || echo "Failed to list library in /usr/local/lib"
# Set up environment for the build
export DYLD_LIBRARY_PATH="$(pwd)/Plugins/LuckyMujoco/Source/ThirdParty/Mujoco/lib:$UE_ROOT/Source:$UE_ROOT/Binaries/Mac:/usr/local/lib:$DYLD_LIBRARY_PATH"
export DYLD_FRAMEWORK_PATH="$UE_ROOT/Binaries/Mac:$DYLD_FRAMEWORK_PATH"
export DYLD_FALLBACK_LIBRARY_PATH="$UE_ROOT/Binaries/Mac:$UE_ROOT/Source:/usr/local/lib:$DYLD_FALLBACK_LIBRARY_PATH"
echo "Build environment:"
echo "DYLD_LIBRARY_PATH=$DYLD_LIBRARY_PATH"
echo "DYLD_FRAMEWORK_PATH=$DYLD_FRAMEWORK_PATH"
echo "DYLD_FALLBACK_LIBRARY_PATH=$DYLD_FALLBACK_LIBRARY_PATH"
- name: Build Unreal Project - name: Build Unreal Project
run: | run: |
chmod +x ./mac_build.sh # Debug information
./mac_build.sh echo "=== Environment Information ==="
echo "macOS Version:"
sw_vers
echo "Current working directory: $(pwd)"
echo "DYLD_LIBRARY_PATH: $DYLD_LIBRARY_PATH"
echo "LD_LIBRARY_PATH: $LD_LIBRARY_PATH"
# Find 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
# Get absolute path
UPROJECT_ABSOLUTE_PATH=$(realpath "$UPROJECT_PATH")
echo "Project path: $UPROJECT_ABSOLUTE_PATH"
# Ensure the MuJoCo library is in place
PROJECT_MUJOCO_DIR="Plugins/LuckyMujoco/Source/ThirdParty/Mujoco/lib"
PROJECT_MUJOCO_PATH="$PROJECT_MUJOCO_DIR/mujoco.dylib"
if [ ! -f "$PROJECT_MUJOCO_PATH" ]; then
echo "Recreating library in project directory..."
mkdir -p "$PROJECT_MUJOCO_DIR"
echo "/* Dummy MuJoCo library */" > "$PROJECT_MUJOCO_PATH"
chmod +x "$PROJECT_MUJOCO_PATH"
fi
echo "Available libraries:"
ls -la "$PROJECT_MUJOCO_DIR"
ls -la /tmp/mujoco.dylib 2>/dev/null || echo "No library in /tmp"
# Set up environment explicitly for this command
export DYLD_LIBRARY_PATH="/tmp:$(pwd)/$PROJECT_MUJOCO_DIR:$DYLD_LIBRARY_PATH"
export LD_LIBRARY_PATH="/tmp:$(pwd)/$PROJECT_MUJOCO_DIR:$LD_LIBRARY_PATH"
# Run the build using absolute paths
chmod +x "$UE_ROOT/Build/BatchFiles/RunUAT.sh"
# Source environment variables again to ensure they are properly set
source $GITHUB_ENV
# Set up runtime environment for the build
export DYLD_LIBRARY_PATH="$(pwd)/Plugins/LuckyMujoco/Source/ThirdParty/Mujoco/lib:$UE_ROOT/Source:$UE_ROOT/Binaries/Mac:/usr/local/lib:$DYLD_LIBRARY_PATH"
export DYLD_FRAMEWORK_PATH="$UE_ROOT/Binaries/Mac:$DYLD_FRAMEWORK_PATH"
export DYLD_FALLBACK_LIBRARY_PATH="$UE_ROOT/Binaries/Mac:$UE_ROOT/Source:/usr/local/lib:$DYLD_FALLBACK_LIBRARY_PATH"
echo "Final build environment:"
echo "UE_ROOT=$UE_ROOT"
echo "UE_PATH=$UE_PATH"
echo "DYLD_LIBRARY_PATH=$DYLD_LIBRARY_PATH"
echo "Checking for mujoco.dylib in key locations:"
ls -l "$UE_ROOT/Source/mujoco.dylib" || echo "Library not found in $UE_ROOT/Source"
ls -l "$UE_ROOT/Binaries/Mac/mujoco.dylib" || echo "Library not found in $UE_ROOT/Binaries/Mac"
ls -l "/usr/local/lib/mujoco.dylib" || echo "Library not found in /usr/local/lib"
# Run the build with additional debug output
echo "Running build command..."
"$UE_ROOT/Build/BatchFiles/RunUAT.sh" BuildCookRun \
-project="$UPROJECT_ABSOLUTE_PATH" \
-noP4 \
-platform=Mac \
-clientconfig=Development \
-cook -build -stage -pak -archive \
-archivedirectory="$(pwd)/Build" || {
echo "Build failed with status: $?"
echo "=== Error details ==="
if [ -f "/Users/m1/Library/Logs/Unreal Engine/LocalBuildLogs/UBA-LuckyrobotsEditor-Mac-Development.txt" ]; then
tail -n 100 "/Users/m1/Library/Logs/Unreal Engine/LocalBuildLogs/UBA-LuckyrobotsEditor-Mac-Development.txt"
fi
exit 1
}
- name: Upload build artifacts - name: Upload build artifacts
uses: actions/upload-artifact@v3 uses: actions/upload-artifact@v3
with: with:
name: macos-build name: macos-build
path: Builds/ path: Build/
retention-days: 7 retention-days: 7
- name: Create Tag
if: github.ref == 'refs/heads/main' || github.ref == 'refs/heads/develop'
run: |
# Set tag name
TAG="v${{ github.run_number }}"
echo "Creating git tag: $TAG"
# Configure git
git config --global user.email "actions@gitea.com"
git config --global user.name "Gitea Actions"
# Check if tag already exists
if git rev-parse "$TAG" >/dev/null 2>&1; then
echo "Tag $TAG already exists"
else
echo "Creating new tag $TAG"
git tag -a "$TAG" -m "Release $TAG"
# Push the tag explicitly
git push origin "$TAG"
fi
# Verify tag exists
git fetch --tags
echo "Checking out tag: $TAG"
git checkout "$TAG" || (echo "Failed to checkout tag" && exit 1)
# Verify we are on the tag, not on a branch
CURRENT_REF=$(git symbolic-ref -q HEAD || git rev-parse HEAD)
echo "Current ref: $CURRENT_REF"
if [[ "$CURRENT_REF" == *"refs/heads/"* ]]; then
echo "ERROR: Still on a branch, not on the tag"
exit 1
fi
# Export tag name for later steps
echo "RELEASE_TAG=$TAG" >> $GITHUB_ENV
- name: Create Release
if: github.ref == 'refs/heads/main' || github.ref == 'refs/heads/develop'
uses: https://gitea.com/actions/release-action@main
with:
files: |-
Builds/**
api_key: '${{ secrets.GITEA_TOKEN }}'
title: 'Release ${{ env.RELEASE_TAG }}'
body: 'Automated release from CI build #${{ github.run_number }}'
prerelease: ${{ github.ref != 'refs/heads/main' }}
tag_name: '${{ env.RELEASE_TAG }}'

1
.gitignore vendored
View File

@ -75,4 +75,3 @@ Plugins/**/Intermediate/*
# Cache files for the editor to use # Cache files for the editor to use
DerivedDataCache/* DerivedDataCache/*
.DS_Store

View File

@ -98,7 +98,7 @@ r.DefaultFeature.LocalExposure.ShadowContrastScale=0.800000
r.DefaultFeature.MotionBlur=False r.DefaultFeature.MotionBlur=False
r.DefaultFeature.LensFlare=False r.DefaultFeature.LensFlare=False
r.TemporalAA.Upsampling=True r.TemporalAA.Upsampling=True
r.AntiAliasingMethod=4 r.AntiAliasingMethod=2
r.MSAACount=1 r.MSAACount=1
r.DefaultFeature.LightUnits=1 r.DefaultFeature.LightUnits=1
r.DefaultBackBufferPixelFormat=4 r.DefaultBackBufferPixelFormat=4
@ -319,15 +319,3 @@ RuntimeGeneration=Dynamic
[/Script/AIModule.CrowdManager] [/Script/AIModule.CrowdManager]
MaxAgentRadius=100.000000 MaxAgentRadius=100.000000
[/Script/FFXFSR3Settings.FFXFSR3Settings]
r.FidelityFX.FSR3.EnabledInEditorViewport=True
r.FidelityFX.FSR3.UseSSRExperimentalDenoiser=True
r.FidelityFX.FSR3.QualityMode=2
r.FidelityFX.FSR3.Enabled=True
[/Script/DLSS.DLSSSettings]
bEnableDLSSInEditorViewports=True
bEnableDLSSD3D12=False
bEnableDLSSD3D11=False
bEnableDLSSVulkan=False

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

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