Compare commits

..

No commits in common. "f5f227f1806f8da8f2aaf223790ed63af90a81b6" and "3ad7393e4587f4fbe7f9530807e4c2e202747a21" have entirely different histories.

48 changed files with 383 additions and 631 deletions

View File

@ -1,103 +1,75 @@
name: Unreal Release name: Create Release
on: on:
workflow_dispatch: workflow_dispatch:
inputs: inputs:
windows_build_path: version:
description: 'Absolute path to the Windows build zip file' description: 'Version for this release (e.g. 1.0.0)'
required: true required: true
default: 'E:\LuckyWorld\LuckyRobots\UNREAL_PROJECTS\Luckyrobots\Builds\Windows\LuckyRobots-Windows.zip' default: ''
linux_build_path: prerelease:
description: 'Absolute path to the Linux build zip file' description: 'Is this a pre-release?'
required: true required: true
default: 'E:\LuckyWorld\LuckyRobots\UNREAL_PROJECTS\Luckyrobots\Builds\Linux\LuckyRobots-Linux.zip' default: 'false'
mac_build_path: type: boolean
description: 'Absolute path to the Mac build zip file' description:
required: true description: 'Release description'
default: 'E:\LuckyWorld\LuckyRobots\UNREAL_PROJECTS\Luckyrobots\Builds\Mac\LuckyRobots-Mac.zip' required: false
default: 'New release'
jobs: jobs:
build: create-release:
runs-on: windows runs-on: macos
steps: steps:
- name: Upload Linux Build Artifact - name: Checkout repository
uses: actions/upload-artifact@v3 uses: actions/checkout@v3
with: with:
name: LuckyRobots-Linux lfs: true
path: ${{ github.event.inputs.linux_build_path }} fetch-depth: 0
retention-days: 365
- name: Upload Windows Build Artifact - name: Create Tag
uses: actions/upload-artifact@v3
with:
name: LuckyRobots-Windows
path: ${{ github.event.inputs.windows_build_path }}
retention-days: 365
- name: Upload Mac Build Artifact
uses: actions/upload-artifact@v3
with:
name: LuckyRobots-Mac
path: ${{ github.event.inputs.mac_build_path }}
retention-days: 365
- name: Get Release Tag
shell: pwsh
run: | run: |
# Fetch all tags # Set tag name
TAG="v${{ github.event.inputs.version }}"
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 git fetch --tags
echo "Checking out tag: $TAG"
git checkout "$TAG" || (echo "Failed to checkout tag" && exit 1)
# Get the latest version tag, if any # Verify we are on the tag, not on a branch
# Uses Sort-Object with a version comparison scriptblock CURRENT_REF=$(git symbolic-ref -q HEAD || git rev-parse HEAD)
$latestTag = git tag -l "v[0-9]*.[0-9]*.[0-9]*" | Sort-Object -Property @{Expression={[version]($_ -replace 'v')}} | Select-Object -Last 1 echo "Current ref: $CURRENT_REF"
if [[ "$CURRENT_REF" == *"refs/heads/"* ]]; then
echo "ERROR: Still on a branch, not on the tag"
exit 1
fi
$newVersion = "1.0.0" # Default start version # Export tag name for later steps
echo "RELEASE_TAG=$TAG" >> $GITHUB_ENV
if ($null -ne $latestTag -and $latestTag -ne '') {
Write-Host "Latest tag found: $latestTag"
# Strip 'v' prefix
$versionString = $latestTag -replace '^v'
# Split version into parts
$versionParts = $versionString.Split('.')
if ($versionParts.Length -eq 3) {
$major = [int]$versionParts[0]
$minor = [int]$versionParts[1]
$patch = [int]$versionParts[2]
# Auto-increment patch version
$patch++
$newVersion = "$major.$minor.$patch"
Write-Host "Auto-incremented patch version from $versionString to $newVersion"
} else {
Write-Host "Could not parse version from tag: $latestTag. Defaulting to 1.0.0"
}
} else {
Write-Host "No previous version tags found, starting with 1.0.0"
}
# Final tag with v prefix
$tag = "v$newVersion"
# Set environment variable for subsequent steps
echo "RELEASE_TAG=$tag" | Out-File -FilePath $env:GITHUB_ENV -Encoding utf8 -Append
Write-Host "Using release tag: $tag"
- name: Create Release - name: Create Release
uses: https://gitea.com/actions/gitea-release-action@main uses: https://gitea.com/actions/release-action@main
with: with:
token: '${{ secrets.GITEA_TOKEN }}' files: |-
builds/**
api_key: '${{ secrets.GITEA_TOKEN }}'
title: 'Release ${{ env.RELEASE_TAG }}' title: 'Release ${{ env.RELEASE_TAG }}'
body: | body: '${{ github.event.inputs.description }}'
## LuckyRobots Game Release ${{ env.RELEASE_TAG }} prerelease: ${{ github.event.inputs.prerelease }}
Windows, Linux and Mac builds are attached below.
### Build Information
- Build Number: #${{ github.run_number }}
- Commit: ${{ github.sha }}
- Branch: ${{ github.ref_name }}
- Build Date: $(date -u +"%Y-%m-%d %H:%M:%S UTC")
prerelease: ${{ github.ref != 'refs/heads/main' }}
tag_name: '${{ env.RELEASE_TAG }}' tag_name: '${{ env.RELEASE_TAG }}'

View File

@ -6,221 +6,48 @@ on:
branches: [main, develop] branches: [main, develop]
jobs: jobs:
build-and-release: # windows-build:
runs-on: windows # runs-on: windows
if: github.ref == 'refs/heads/main' || github.ref == 'refs/heads/develop' # steps:
steps: # - name: Checkout repository
- name: Checkout repository # uses: actions/checkout@v3
uses: actions/checkout@v3 # with:
with: # lfs: true
lfs: true # fetch-depth: 0
fetch-depth: 0
- name: Setup environment # - name: Setup Unreal Engine
run: | # run: |
# Set environment variables for Unreal Engine # # Ensure Unreal Engine is installed and set up
echo "UE_ROOT=E:/Games/UE_5.5" >> $GITHUB_ENV # # This assumes you have Unreal Engine installed on your runner
# Set environment variables for Linux toolchain # # If not, you can add installation steps here
$env:LINUX_MULTIARCH_ROOT="C:/UnrealToolchains/v23_clang-18.1.0-rockylinux8"
echo "LINUX_MULTIARCH_ROOT=${LINUX_MULTIARCH_ROOT}" >> $GITHUB_ENV
# Create directories for builds (with error handling) # # Set environment variables for Unreal Engine
if (!(Test-Path "Builds/Windows")) { New-Item -ItemType Directory -Path "Builds/Windows" -Force } # echo "UE_ROOT=C:\Program Files\Epic Games\UE_5.2" >> $GITHUB_ENV
if (!(Test-Path "Builds/Linux")) { New-Item -ItemType Directory -Path "Builds/Linux" -Force }
if (!(Test-Path "PackagedReleases")) { New-Item -ItemType Directory -Path "PackagedReleases" -Force }
- name: Build for Windows # - name: Build Unreal Project
run: | # run: |
# Chmod command doesn't exist in Windows, use PowerShell to run the bash script # # Find your .uproject file (adjust path as needed)
& 'C:\Program Files\Git\bin\bash.exe' -c "./win_build.sh" # $UPROJECT_PATH = Get-ChildItem -Path . -Filter "*.uproject" -Recurse | Select-Object -First 1 -ExpandProperty FullName
# Write-Host "Building project: $UPROJECT_PATH"
- name: Build for Linux # # Use Unreal Automation Tool to build the project
run: | # & "$env:UE_ROOT\Engine\Build\BatchFiles\RunUAT.bat" BuildCookRun `
# Chmod command doesn't exist in Windows, use PowerShell to run the bash script # -project="$UPROJECT_PATH" `
& 'C:\Program Files\Git\bin\bash.exe' -c "./linux_build.sh" # -noP4 `
# -platform=Win64 `
# -clientconfig=Development `
# -cook -build -stage -pak -archive `
# -archivedirectory="$PWD\Build"
- name: Package builds # - name: Upload build artifacts
run: | # uses: actions/upload-artifact@v3
echo "Packaging Windows build..." # with:
if [ -d "Builds/Windows" ]; then # name: windows-build
cd Builds/Windows # path: Build/
zip -r ../../PackagedReleases/LuckyRobots-Windows.zip . # retention-days: 7
cd ../..
fi
echo "Packaging Linux build..."
if [ -d "Builds/Linux" ]; then
cd Builds/Linux
zip -r ../../PackagedReleases/LuckyRobots-Linux.zip .
cd ../..
fi
echo "=== Packaged releases ==="
ls -la PackagedReleases/
- name: Upload Windows Build Artifact
uses: actions/upload-artifact@v3
if: success() && hashFiles('PackagedReleases/LuckyRobots-Windows.zip') != ''
with:
name: LuckyRobots-Windows
path: PackagedReleases/LuckyRobots-Windows.zip
retention-days: 365
- name: Upload Linux Build Artifact
uses: actions/upload-artifact@v3
if: success() && hashFiles('PackagedReleases/LuckyRobots-Linux.zip') != ''
with:
name: LuckyRobots-Linux
path: PackagedReleases/LuckyRobots-Linux.zip
retention-days: 365
- name: Create Tag
if: github.ref == 'refs/heads/main' || github.ref == 'refs/heads/develop'
run: |
# Fetch all tags
git fetch --tags
# Get the latest version tag, if any
LATEST_TAG=$(git tag -l "v[0-9]*.[0-9]*.[0-9]*" | sort -V | tail -n1)
if [ -z "$LATEST_TAG" ]; then
# No previous version tag, start with 1.0.0
NEW_VERSION="1.0.0"
echo "No previous version tags found, starting with 1.0.0"
else
# Strip 'v' prefix if it exists
VERSION=${LATEST_TAG#v}
# Split version into parts
MAJOR=$(echo $VERSION | cut -d. -f1)
MINOR=$(echo $VERSION | cut -d. -f2)
PATCH=$(echo $VERSION | cut -d. -f3)
# Auto-increment patch version
PATCH=$((PATCH + 1))
NEW_VERSION="${MAJOR}.${MINOR}.${PATCH}"
echo "Auto-incremented patch version from ${VERSION} to ${NEW_VERSION}"
fi
# Final tag with v prefix
TAG="v${NEW_VERSION}"
echo "Creating git tag: $TAG"
# Configure git with token authentication
git config --global user.email "actions@gitea.com"
git config --global user.name "Gitea Actions"
# Direct token approach - simplest method
git remote set-url origin "https://goran:${{ secrets.GITEATOKEN }}@luckyrobots.com/luckyrobots/luckyworld.git"
# Set git to not prompt for input
$env:GIT_TERMINAL_PROMPT=0
# Check if tag exists
if ! git rev-parse "$TAG" >/dev/null 2>&1; then
# Create tag without opening editor (-m flag)
git tag -a "$TAG" -m "Release $TAG"
# Push with timeout and debug
echo "Pushing tag $TAG to origin..."
git push --verbose origin "$TAG" || {
echo "Error: Failed to push tag. Check your token permissions."
exit 1
}
echo "Successfully created and pushed tag: $TAG"
else
echo "Tag $TAG already exists, skipping tag creation"
fi
echo "RELEASE_TAG=$TAG" >> $GITHUB_ENV
- name: Create Build Info
run: |
# Create a build info JSON file
echo '{
"version": "${{ env.RELEASE_TAG }}",
"buildNumber": "${{ github.run_number }}",
"commit": "${{ github.sha }}",
"branch": "${{ github.ref_name }}",
"buildDate": "'$(date -u +"%Y-%m-%dT%H:%M:%SZ")'",
"artifacts": {
"windows": "https://luckyrobots.com/luckyrobots/luckyworld/actions/runs/${{ github.run_id }}/artifacts/LuckyRobots-Windows",
"linux": "https://luckyrobots.com/luckyrobots/luckyworld/actions/runs/${{ github.run_id }}/artifacts/LuckyRobots-Linux"
}
}' > PackagedReleases/build-info.json
# Create a simple HTML download page
echo '<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>LuckyRobots ${{ env.RELEASE_TAG }} Downloads</title>
<style>
body { font-family: Arial, sans-serif; max-width: 800px; margin: 0 auto; padding: 20px; }
h1 { color: #333; }
.download-btn {
display: inline-block;
background-color: #4CAF50;
color: white;
padding: 10px 20px;
text-decoration: none;
border-radius: 4px;
margin: 10px 5px;
}
.download-btn:hover { background-color: #45a049; }
.platform { margin-bottom: 30px; }
</style>
</head>
<body>
<h1>LuckyRobots Game - ${{ env.RELEASE_TAG }}</h1>
<p>Build #${{ github.run_number }} - Built from commit: ${{ github.sha }}</p>
<div class="platform">
<h2>Windows</h2>
<p><a href="https://luckyrobots.com/luckyrobots/luckyworld/actions/runs/${{ github.run_id }}/artifacts/LuckyRobots-Windows" class="download-btn">Download Windows Build</a></p>
</div>
<div class="platform">
<h2>Linux</h2>
<p><a href="https://luckyrobots.com/luckyrobots/luckyworld/actions/runs/${{ github.run_id }}/artifacts/LuckyRobots-Linux" class="download-btn">Download Linux Build</a></p>
</div>
<footer>
<p>Generated on '$(date -u +"%Y-%m-%d %H:%M:%S UTC")'</p>
</footer>
</body>
</html>' > PackagedReleases/downloads.html
- name: Create Release
uses: https://gitea.com/actions/gitea-release-action@main
with:
files: |-
PackagedReleases/build-info.json
PackagedReleases/downloads.html
token: '${{ secrets.GITEA_TOKEN }}'
title: 'Release ${{ env.RELEASE_TAG }}'
body: |
## LuckyRobots Game Release ${{ env.RELEASE_TAG }}
### Download Links
Download builds from our CI artifacts:
- [Windows Build](https://luckyrobots.com/luckyrobots/luckyworld/actions/runs/${{ github.run_id }}/artifacts/LuckyRobots-Windows)
- [Linux Build](https://luckyrobots.com/luckyrobots/luckyworld/actions/runs/${{ github.run_id }}/artifacts/LuckyRobots-Linux)
### Build Information
- Build Number: #${{ github.run_number }}
- Commit: ${{ github.sha }}
- Branch: ${{ github.ref_name }}
- Build Date: $(date -u +"%Y-%m-%d %H:%M:%S UTC")
prerelease: ${{ github.ref != 'refs/heads/main' }}
tag_name: '${{ env.RELEASE_TAG }}'
macos-build: macos-build:
runs-on: macos runs-on: macos
if: github.ref == 'refs/heads/main' || github.ref == 'refs/heads/develop'
steps: steps:
- name: Checkout repository - name: Checkout repository
uses: actions/checkout@v3 uses: actions/checkout@v3
@ -228,29 +55,6 @@ jobs:
lfs: true lfs: true
fetch-depth: 0 fetch-depth: 0
- name: Get Release Tag
run: |
# Fetch all tags
git fetch --tags
# Get the latest version tag
LATEST_TAG=$(git tag -l "v[0-9]*.[0-9]*.[0-9]*" | sort -V | tail -n1)
if [ -z "$LATEST_TAG" ]; then
NEW_VERSION="1.0.0"
else
VERSION=${LATEST_TAG#v}
MAJOR=$(echo $VERSION | cut -d. -f1)
MINOR=$(echo $VERSION | cut -d. -f2)
PATCH=$(echo $VERSION | cut -d. -f3)
PATCH=$((PATCH + 1))
NEW_VERSION="${MAJOR}.${MINOR}.${PATCH}"
fi
TAG="v${NEW_VERSION}"
echo "RELEASE_TAG=$TAG" >> $GITHUB_ENV
echo "Using release tag: $TAG"
- name: Setup Unreal Engine - name: Setup Unreal Engine
run: | run: |
# Use the correct path where Unreal Engine is installed # Use the correct path where Unreal Engine is installed
@ -271,79 +75,58 @@ jobs:
chmod +x ./mac_build.sh chmod +x ./mac_build.sh
./mac_build.sh ./mac_build.sh
- name: Prepare Mac release - name: Upload build artifacts
uses: actions/upload-artifact@v3
with:
name: macos-build
path: Builds/
retention-days: 7
- name: Create Tag
if: github.ref == 'refs/heads/main' || github.ref == 'refs/heads/develop'
run: | run: |
echo "Preparing packaged files for release..." # Set tag name
TAG="v${{ github.run_number }}"
echo "Creating git tag: $TAG"
# Create a directory for release files # Configure git
mkdir -p PackagedReleases git config --global user.email "actions@gitea.com"
git config --global user.name "Gitea Actions"
# Debug: Show what we're packaging # Check if tag already exists
echo "=== Packaging for Release ===" if git rev-parse "$TAG" >/dev/null 2>&1; then
echo "Build directory contents:" echo "Tag $TAG already exists"
ls -la Builds/
# Find the app bundle in the Builds directory
APP_PATH=$(find Builds -type d -name "*.app" | head -1)
if [ -n "$APP_PATH" ]; then
echo "Found app bundle: $APP_PATH"
# Get the app name
APP_NAME=$(basename "$APP_PATH")
# Create zip file of the app bundle
(cd $(dirname "$APP_PATH") && zip -r "../../PackagedReleases/${APP_NAME%.app}-macOS.zip" "$APP_NAME")
echo "Created packaged release: PackagedReleases/${APP_NAME%.app}-macOS.zip"
else else
echo "No .app bundle found in Builds directory" echo "Creating new tag $TAG"
git tag -a "$TAG" -m "Release $TAG"
# Look for a directory that might be a bundle but not named .app # Push the tag explicitly
MAIN_BUILD_DIR=$(find Builds -mindepth 1 -maxdepth 1 -type d | head -1) git push origin "$TAG"
if [ -n "$MAIN_BUILD_DIR" ]; then
echo "Found main build directory: $MAIN_BUILD_DIR"
DIR_NAME=$(basename "$MAIN_BUILD_DIR")
# Package this directory as if it were the app
(cd $(dirname "$MAIN_BUILD_DIR") && zip -r "../../PackagedReleases/${DIR_NAME}-macOS.zip" "$DIR_NAME")
echo "Created packaged release from main directory: PackagedReleases/${DIR_NAME}-macOS.zip"
else
# Package the entire Builds directory as a fallback
echo "No main directory found, packaging everything"
zip -r "PackagedReleases/LuckyRobots-macOS.zip" Builds
echo "Created fallback package: PackagedReleases/LuckyRobots-macOS.zip"
fi
fi fi
echo "Packaged releases:" # Verify tag exists
ls -la PackagedReleases/ git fetch --tags
echo "Checking out tag: $TAG"
git checkout "$TAG" || (echo "Failed to checkout tag" && exit 1)
- name: Upload macOS Build Artifact # Verify we are on the tag, not on a branch
uses: actions/upload-artifact@v3 CURRENT_REF=$(git symbolic-ref -q HEAD || git rev-parse HEAD)
if: success() echo "Current ref: $CURRENT_REF"
with: if [[ "$CURRENT_REF" == *"refs/heads/"* ]]; then
name: LuckyRobots-macOS echo "ERROR: Still on a branch, not on the tag"
path: PackagedReleases/*-macOS.zip exit 1
retention-days: 365 fi
- name: Create Release Note # Export tag name for later steps
run: | echo "RELEASE_TAG=$TAG" >> $GITHUB_ENV
echo "## macOS Build Completed" > release-note.md
echo "" >> release-note.md
echo "macOS build is available as an artifact." >> release-note.md
echo "" >> release-note.md
echo "Download from: [macOS Build](https://luckyrobots.com/luckyrobots/luckyworld/actions/runs/${{ github.run_id }}/artifacts/LuckyRobots-macOS)" >> release-note.md
- name: Create Gitea Release - name: Create Release
if: github.ref == 'refs/heads/main' || github.ref == 'refs/heads/develop' if: github.ref == 'refs/heads/main' || github.ref == 'refs/heads/develop'
uses: https://gitea.com/actions/gitea-release-action@main uses: https://gitea.com/actions/release-action@main
with: with:
token: ${{ secrets.GITEATOKEN }} files: |-
tag_name: ${{ env.RELEASE_TAG }} Builds/**
title: "Release ${{ env.RELEASE_TAG }} - macOS" api_key: '${{ secrets.GITEA_TOKEN }}'
body: | title: 'Release ${{ env.RELEASE_TAG }}'
## macOS Build Available as Artifact body: 'Automated release from CI build #${{ github.run_number }}'
prerelease: ${{ github.ref != 'refs/heads/main' }}
The macOS build is available as an artifact due to its large file size. tag_name: '${{ env.RELEASE_TAG }}'
[Download macOS Build](https://luckyrobots.com/luckyrobots/luckyworld/actions/runs/${{ github.run_id }}/artifacts/LuckyRobots-macOS)
Built from commit: ${{ github.sha }}
files: release-note.md

View File

@ -21,6 +21,150 @@
"BuildId": "37670630" "BuildId": "37670630"
}, },
"BuildProducts": [ "BuildProducts": [
{
"Path": "$(ProjectDir)/Binaries/Win64/UnrealEditor-Luckyrobots.dll",
"Type": "DynamicLibrary"
},
{
"Path": "$(ProjectDir)/Binaries/Win64/UnrealEditor-Luckyrobots.pdb",
"Type": "SymbolFile"
},
{
"Path": "$(ProjectDir)/Binaries/Win64/UnrealEditor.modules",
"Type": "RequiredResource"
},
{
"Path": "$(ProjectDir)/Plugins/AsyncLoadingScreen/Binaries/Win64/UnrealEditor-AsyncLoadingScreen.dll",
"Type": "DynamicLibrary"
},
{
"Path": "$(ProjectDir)/Plugins/AsyncLoadingScreen/Binaries/Win64/UnrealEditor-AsyncLoadingScreen.pdb",
"Type": "SymbolFile"
},
{
"Path": "$(ProjectDir)/Plugins/AsyncLoadingScreen/Binaries/Win64/UnrealEditor.modules",
"Type": "RequiredResource"
},
{
"Path": "$(ProjectDir)/Plugins/BlueprintJson/Binaries/Win64/UnrealEditor-BlueprintJson.dll",
"Type": "DynamicLibrary"
},
{
"Path": "$(ProjectDir)/Plugins/BlueprintJson/Binaries/Win64/UnrealEditor-BlueprintJson.pdb",
"Type": "SymbolFile"
},
{
"Path": "$(ProjectDir)/Plugins/BlueprintJson/Binaries/Win64/UnrealEditor.modules",
"Type": "RequiredResource"
},
{
"Path": "$(ProjectDir)/Plugins/FileHelperPlugin/Binaries/Win64/UnrealEditor-FileHelper.dll",
"Type": "DynamicLibrary"
},
{
"Path": "$(ProjectDir)/Plugins/FileHelperPlugin/Binaries/Win64/UnrealEditor-FileHelper.pdb",
"Type": "SymbolFile"
},
{
"Path": "$(ProjectDir)/Plugins/FileHelperPlugin/Binaries/Win64/UnrealEditor.modules",
"Type": "RequiredResource"
},
{
"Path": "$(ProjectDir)/Plugins/LuckyMujoco/Binaries/Win64/UnrealEditor-LuckyMujoco.dll",
"Type": "DynamicLibrary"
},
{
"Path": "$(ProjectDir)/Plugins/LuckyMujoco/Binaries/Win64/UnrealEditor-LuckyMujoco.pdb",
"Type": "SymbolFile"
},
{
"Path": "$(ProjectDir)/Plugins/LuckyMujoco/Binaries/Win64/UnrealEditor-LuckyMujocoEditor.dll",
"Type": "DynamicLibrary"
},
{
"Path": "$(ProjectDir)/Plugins/LuckyMujoco/Binaries/Win64/UnrealEditor-LuckyMujocoEditor.pdb",
"Type": "SymbolFile"
},
{
"Path": "$(ProjectDir)/Plugins/LuckyMujoco/Binaries/Win64/UnrealEditor.modules",
"Type": "RequiredResource"
},
{
"Path": "$(ProjectDir)/Plugins/LuckyTextWrite/Binaries/Win64/UnrealEditor-LuckyTextWrite.dll",
"Type": "DynamicLibrary"
},
{
"Path": "$(ProjectDir)/Plugins/LuckyTextWrite/Binaries/Win64/UnrealEditor-LuckyTextWrite.pdb",
"Type": "SymbolFile"
},
{
"Path": "$(ProjectDir)/Plugins/LuckyTextWrite/Binaries/Win64/UnrealEditor.modules",
"Type": "RequiredResource"
},
{
"Path": "$(ProjectDir)/Plugins/SocketIOClient/Binaries/Win64/UnrealEditor-CoreUtility.dll",
"Type": "DynamicLibrary"
},
{
"Path": "$(ProjectDir)/Plugins/SocketIOClient/Binaries/Win64/UnrealEditor-CoreUtility.pdb",
"Type": "SymbolFile"
},
{
"Path": "$(ProjectDir)/Plugins/SocketIOClient/Binaries/Win64/UnrealEditor-SIOJEditorPlugin.dll",
"Type": "DynamicLibrary"
},
{
"Path": "$(ProjectDir)/Plugins/SocketIOClient/Binaries/Win64/UnrealEditor-SIOJEditorPlugin.pdb",
"Type": "SymbolFile"
},
{
"Path": "$(ProjectDir)/Plugins/SocketIOClient/Binaries/Win64/UnrealEditor-SIOJson.dll",
"Type": "DynamicLibrary"
},
{
"Path": "$(ProjectDir)/Plugins/SocketIOClient/Binaries/Win64/UnrealEditor-SIOJson.pdb",
"Type": "SymbolFile"
},
{
"Path": "$(ProjectDir)/Plugins/SocketIOClient/Binaries/Win64/UnrealEditor-SocketIOClient.dll",
"Type": "DynamicLibrary"
},
{
"Path": "$(ProjectDir)/Plugins/SocketIOClient/Binaries/Win64/UnrealEditor-SocketIOClient.pdb",
"Type": "SymbolFile"
},
{
"Path": "$(ProjectDir)/Plugins/SocketIOClient/Binaries/Win64/UnrealEditor-SocketIOLib.dll",
"Type": "DynamicLibrary"
},
{
"Path": "$(ProjectDir)/Plugins/SocketIOClient/Binaries/Win64/UnrealEditor-SocketIOLib.pdb",
"Type": "SymbolFile"
},
{
"Path": "$(ProjectDir)/Plugins/SocketIOClient/Binaries/Win64/UnrealEditor.modules",
"Type": "RequiredResource"
},
{
"Path": "$(ProjectDir)/Plugins/VaRestPlugin/Binaries/Win64/UnrealEditor-VaRest.dll",
"Type": "DynamicLibrary"
},
{
"Path": "$(ProjectDir)/Plugins/VaRestPlugin/Binaries/Win64/UnrealEditor-VaRest.pdb",
"Type": "SymbolFile"
},
{
"Path": "$(ProjectDir)/Plugins/VaRestPlugin/Binaries/Win64/UnrealEditor-VaRestEditor.dll",
"Type": "DynamicLibrary"
},
{
"Path": "$(ProjectDir)/Plugins/VaRestPlugin/Binaries/Win64/UnrealEditor-VaRestEditor.pdb",
"Type": "SymbolFile"
},
{
"Path": "$(ProjectDir)/Plugins/VaRestPlugin/Binaries/Win64/UnrealEditor.modules",
"Type": "RequiredResource"
},
{ {
"Path": "$(EngineDir)/Binaries/ThirdParty/USD/UsdResources/Win64/plugins/ar/resources/plugInfo.json", "Path": "$(EngineDir)/Binaries/ThirdParty/USD/UsdResources/Win64/plugins/ar/resources/plugInfo.json",
"Type": "RequiredResource" "Type": "RequiredResource"
@ -569,38 +713,6 @@
"Path": "$(EngineDir)/Binaries/Win64/EOSSDK-Win64-Shipping.dll", "Path": "$(EngineDir)/Binaries/Win64/EOSSDK-Win64-Shipping.dll",
"Type": "DynamicLibrary" "Type": "DynamicLibrary"
}, },
{
"Path": "$(EngineDir)/Binaries/Win64/LinuxArm64/UnrealEditor-LinuxArm64TargetPlatform.dll",
"Type": "DynamicLibrary"
},
{
"Path": "$(EngineDir)/Binaries/Win64/LinuxArm64/UnrealEditor-LinuxArm64TargetPlatformControls.dll",
"Type": "DynamicLibrary"
},
{
"Path": "$(EngineDir)/Binaries/Win64/LinuxArm64/UnrealEditor-LinuxArm64TargetPlatformSettings.dll",
"Type": "DynamicLibrary"
},
{
"Path": "$(EngineDir)/Binaries/Win64/LinuxArm64/UnrealEditor.modules",
"Type": "RequiredResource"
},
{
"Path": "$(EngineDir)/Binaries/Win64/Linux/UnrealEditor-LinuxTargetPlatform.dll",
"Type": "DynamicLibrary"
},
{
"Path": "$(EngineDir)/Binaries/Win64/Linux/UnrealEditor-LinuxTargetPlatformControls.dll",
"Type": "DynamicLibrary"
},
{
"Path": "$(EngineDir)/Binaries/Win64/Linux/UnrealEditor-LinuxTargetPlatformSettings.dll",
"Type": "DynamicLibrary"
},
{
"Path": "$(EngineDir)/Binaries/Win64/Linux/UnrealEditor.modules",
"Type": "RequiredResource"
},
{ {
"Path": "$(EngineDir)/Binaries/Win64/NNEEditorOnnxTools.dll", "Path": "$(EngineDir)/Binaries/Win64/NNEEditorOnnxTools.dll",
"Type": "DynamicLibrary" "Type": "DynamicLibrary"
@ -4884,6 +4996,7 @@
{ {
"Path": "$(EngineDir)/Plugins/XGEController/Binaries/Win64/UnrealEditor.modules", "Path": "$(EngineDir)/Plugins/XGEController/Binaries/Win64/UnrealEditor.modules",
"Type": "RequiredResource" "Type": "RequiredResource"
<<<<<<< HEAD
}, },
{ {
"Path": "$(ProjectDir)/Binaries/Win64/UnrealEditor-Luckyrobots.dll", "Path": "$(ProjectDir)/Binaries/Win64/UnrealEditor-Luckyrobots.dll",
@ -5028,10 +5141,47 @@
{ {
"Path": "$(ProjectDir)/Plugins/VaRestPlugin/Binaries/Win64/UnrealEditor.modules", "Path": "$(ProjectDir)/Plugins/VaRestPlugin/Binaries/Win64/UnrealEditor.modules",
"Type": "RequiredResource" "Type": "RequiredResource"
=======
>>>>>>> origin/Erdinc_Branch
} }
], ],
"RuntimeDependencies": [ "RuntimeDependencies": [
{ {
<<<<<<< HEAD
=======
"Path": "$(ProjectDir)/Luckyrobots.uproject",
"Type": "UFS"
},
{
"Path": "$(ProjectDir)/Plugins/AsyncLoadingScreen/AsyncLoadingScreen.uplugin",
"Type": "UFS"
},
{
"Path": "$(ProjectDir)/Plugins/BlueprintJson/BlueprintJson.uplugin",
"Type": "UFS"
},
{
"Path": "$(ProjectDir)/Plugins/FileHelperPlugin/FileHelper.uplugin",
"Type": "UFS"
},
{
"Path": "$(ProjectDir)/Plugins/LuckyMujoco/LuckyMujoco.uplugin",
"Type": "UFS"
},
{
"Path": "$(ProjectDir)/Plugins/LuckyTextWrite/LuckyTextWrite.uplugin",
"Type": "UFS"
},
{
"Path": "$(ProjectDir)/Plugins/SocketIOClient/SocketIOClient.uplugin",
"Type": "UFS"
},
{
"Path": "$(ProjectDir)/Plugins/VaRestPlugin/VaRest.uplugin",
"Type": "UFS"
},
{
>>>>>>> origin/Erdinc_Branch
"Path": "$(EngineDir)/Binaries/ThirdParty/DbgHelp/dbghelp.dll", "Path": "$(EngineDir)/Binaries/ThirdParty/DbgHelp/dbghelp.dll",
"Type": "NonUFS" "Type": "NonUFS"
}, },
@ -30774,6 +30924,7 @@
{ {
"Path": "$(EngineDir)/Plugins/XGEController/XGEController.uplugin", "Path": "$(EngineDir)/Plugins/XGEController/XGEController.uplugin",
"Type": "UFS" "Type": "UFS"
<<<<<<< HEAD
}, },
{ {
"Path": "$(ProjectDir)/Luckyrobots.uproject", "Path": "$(ProjectDir)/Luckyrobots.uproject",
@ -30806,6 +30957,8 @@
{ {
"Path": "$(ProjectDir)/Plugins/VaRestPlugin/VaRest.uplugin", "Path": "$(ProjectDir)/Plugins/VaRestPlugin/VaRest.uplugin",
"Type": "UFS" "Type": "UFS"
=======
>>>>>>> origin/Erdinc_Branch
} }
], ],
"BuildPlugins": [ "BuildPlugins": [

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.

View File

@ -1,93 +0,0 @@
#!/bin/bash
set -e
echo "======================= Linux Build Script ======================="
echo "Running on OS: $OSTYPE"
# Optional: Check for a Gitea runner-specific environment variable.
if [ -z "$GITEA_RUNNER" ]; then
echo "Warning: This script does not appear to be running in a Gitea runner environment."
fi
# Get the user's home directory
USER_HOME="$HOME"
# Detect operating system
if [[ "$OSTYPE" == "msys" || "$OSTYPE" == "cygwin" || "$OSTYPE" == "win32" ]]; then
echo "Running on Windows - cross-compiling for Linux"
IS_WINDOWS=1
# Set up Unreal Engine paths for Windows (but targeting Linux)
UE_ROOT="E:/Games/UE_5.5"
UE_EDITOR="$UE_ROOT/Engine/Binaries/Win64/UnrealEditor.exe"
UE_UAT="$UE_ROOT/Engine/Build/BatchFiles/RunUAT.bat"
# Set the Linux toolchain path - this is where it was installed by Chocolatey
TOOLCHAIN_PATH="/c/UnrealToolchains/v23_clang-18.1.0-rockylinux8"
if [ -d "$TOOLCHAIN_PATH" ]; then
export LINUX_MULTIARCH_ROOT="$TOOLCHAIN_PATH"
echo "Using Linux toolchain at: $LINUX_MULTIARCH_ROOT"
else
echo "ERROR: Linux toolchain not found at $TOOLCHAIN_PATH!"
echo "Please verify the toolchain installation path."
exit 1
fi
else
echo "Running on Linux - native compilation"
IS_WINDOWS=0
# Set up Unreal Engine paths for Linux
UE_ROOT="/home/runner/UnrealEngine/UE_5.5"
UE_EDITOR="$UE_ROOT/Engine/Binaries/Linux/UnrealEditor"
UE_UAT="$UE_ROOT/Engine/Build/BatchFiles/RunUAT.sh"
# Make sure the UAT script is executable (only needed on Linux)
chmod +x "$UE_UAT"
fi
# Set up project paths based on the current working directory
PROJECT_ROOT="$(pwd)"
PROJECT_FILE="$PROJECT_ROOT/Luckyrobots.uproject"
ARCHIVE_DIR="$PROJECT_ROOT/Builds/Linux"
# Create the archive directory if it does not exist
mkdir -p "$ARCHIVE_DIR"
echo "Starting Linux build of Luckyrobots..."
echo "Linux toolchain path: $LINUX_MULTIARCH_ROOT"
# Run the build command using Unreal's Automation Tool (UAT)
"$UE_UAT" -ScriptsForProject="$PROJECT_FILE" Turnkey \
-command=VerifySdk \
-platform=Linux \
-UpdateIfNeeded \
-EditorIO \
-EditorIOPort=59484 \
-project="$PROJECT_FILE" \
BuildCookRun \
-nop4 \
-utf8output \
-cook \
-project="$PROJECT_FILE" \
-target=Luckyrobots \
-unrealexe="$UE_EDITOR" \
-platform=Linux \
-installed \
-stage \
-archive \
-package \
-build \
-iterativecooking \
-pak \
-iostore \
-compressed \
-prereqs \
-archivedirectory="$ARCHIVE_DIR" \
-CrashReporter \
-clientconfig=Shipping
# Uncomment the following lines if you wish to test the build without pak and iostore:
# -skipiostore \
# -skippak \
echo "Linux build completed. Output is in $ARCHIVE_DIR"

View File

@ -1,60 +0,0 @@
#!/bin/bash
set -e
# Optional: Check for a Gitea runner-specific environment variable.
# You can set a variable like GITEA_RUNNER in your runner configuration.
if [ -z "$GITEA_RUNNER" ]; then
echo "Warning: This script does not appear to be running in a Gitea runner environment."
fi
# Get the user's home directory (if needed)
USER_HOME="$HOME"
# Set up Unreal Engine paths for Windows
# Adjust the UE_ROOT path if your installation differs.
UE_ROOT="E:/Games/UE_5.5/"
UE_EDITOR="$UE_ROOT/Engine/Binaries/Win64/UnrealEditor.exe"
UE_UAT="$UE_ROOT/Engine/Build/BatchFiles/RunUAT.bat"
# Set up project paths based on the current working directory
PROJECT_ROOT="$(pwd)"
PROJECT_FILE="$PROJECT_ROOT/Luckyrobots.uproject"
ARCHIVE_DIR="$PROJECT_ROOT/Builds/Windows"
# Create the archive directory if it does not exist
mkdir -p "$ARCHIVE_DIR"
echo "Starting Windows build of Luckyrobots via Gitea Runner..."
# Run the build command using Unreal's Automation Tool (UAT)
"$UE_UAT" -ScriptsForProject="$PROJECT_FILE" Turnkey \
-command=VerifySdk \
-platform=Win64 \
-UpdateIfNeeded \
-EditorIO \
-EditorIOPort=59484 \
-project="$PROJECT_FILE" \
BuildCookRun \
-nop4 \
-utf8output \
-cook \
-project="$PROJECT_FILE" \
-target=Luckyrobots \
-unrealexe="$UE_EDITOR" \
-platform=Win64 \
-installed \
-stage \
-archive \
-package \
-build \
-iterativecooking \
-pak \
-iostore \
-compressed \
-prereqs \
-archivedirectory="$ARCHIVE_DIR" \
-CrashReporter \
-clientconfig=Shipping
# Uncomment the following lines if you wish to test the build without pak and iostore:
# -skipiostore \
# -skippak