Compare commits

...

9 Commits

Author SHA1 Message Date
f5f227f180 builds delete 2025-04-03 14:29:08 +03:00
505555ff16 Merge branch 'main' into gurkan.erdinc.temp 2025-04-03 14:01:51 +03:00
2fe66c6071 Merge pull request 'dlss and fsr plugin added' (#5) from gurkan.erdinc into main
Some checks failed
Unreal Engine Build / macos-build (push) Failing after 3h1m12s
Unreal Engine Build / build-and-release (push) Failing after 3h8m42s
Reviewed-on: luckyrobots/luckyworld#5
2025-04-02 21:11:56 +00:00
Goran Lazarevski
1094e73c1c Allow paths as inputs
Some checks failed
Unreal Engine Build / macos-build (push) Has been cancelled
Unreal Engine Build / build-and-release (push) Has been cancelled
2025-04-02 23:07:51 +02:00
Goran Lazarevski
790467d3b1 Merge branch 'main' of ssh://luckyrobots.com:2222/luckyrobots/luckyworld
Some checks failed
Unreal Engine Build / build-and-release (push) Has been cancelled
Unreal Engine Build / macos-build (push) Has been cancelled
2025-04-02 15:39:07 +02:00
Goran Lazarevski
ba98447176 Update windows workflow 2025-04-02 15:30:42 +02:00
Goran Lazarevski
0b4b220dd3 Update windows workflow
Some checks failed
Unreal Engine Build / macos-build (push) Has been cancelled
Unreal Engine Build / build-and-release (push) Failing after 2h8m5s
2025-04-02 13:33:49 +02:00
Goran Lazarevski
510adab5b2 Split build to chunks
Some checks failed
Unreal Engine Build / macos-build (push) Successful in 37m21s
Unreal Engine Build / build-and-release (push) Has been cancelled
2025-04-01 19:56:58 +02:00
Goran Lazarevski
c59de06d6b Multi release action
Some checks failed
Unreal Engine Build / macos-build (push) Failing after 36m34s
Unreal Engine Build / build-and-release (push) Failing after 36m35s
2025-04-01 12:05:53 +02:00
48 changed files with 636 additions and 388 deletions

View File

@ -1,75 +1,103 @@
name: Create Release name: Unreal Release
on: on:
workflow_dispatch: workflow_dispatch:
inputs: inputs:
version: windows_build_path:
description: 'Version for this release (e.g. 1.0.0)' description: 'Absolute path to the Windows build zip file'
required: true required: true
default: '' default: 'E:\LuckyWorld\LuckyRobots\UNREAL_PROJECTS\Luckyrobots\Builds\Windows\LuckyRobots-Windows.zip'
prerelease: linux_build_path:
description: 'Is this a pre-release?' description: 'Absolute path to the Linux build zip file'
required: true required: true
default: 'false' default: 'E:\LuckyWorld\LuckyRobots\UNREAL_PROJECTS\Luckyrobots\Builds\Linux\LuckyRobots-Linux.zip'
type: boolean mac_build_path:
description: description: 'Absolute path to the Mac build zip file'
description: 'Release description' required: true
required: false default: 'E:\LuckyWorld\LuckyRobots\UNREAL_PROJECTS\Luckyrobots\Builds\Mac\LuckyRobots-Mac.zip'
default: 'New release'
jobs: jobs:
create-release: build:
runs-on: macos runs-on: windows
steps: steps:
- name: Checkout repository - name: Upload Linux Build Artifact
uses: actions/checkout@v3 uses: actions/upload-artifact@v3
with: with:
lfs: true name: LuckyRobots-Linux
fetch-depth: 0 path: ${{ github.event.inputs.linux_build_path }}
retention-days: 365
- name: Create Tag
- name: Upload Windows Build Artifact
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: |
# Set tag name # Fetch all tags
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)
# Verify we are on the tag, not on a branch # Get the latest version tag, if any
CURRENT_REF=$(git symbolic-ref -q HEAD || git rev-parse HEAD) # Uses Sort-Object with a version comparison scriptblock
echo "Current ref: $CURRENT_REF" $latestTag = git tag -l "v[0-9]*.[0-9]*.[0-9]*" | Sort-Object -Property @{Expression={[version]($_ -replace 'v')}} | Select-Object -Last 1
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 $newVersion = "1.0.0" # Default start version
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/release-action@main uses: https://gitea.com/actions/gitea-release-action@main
with: with:
files: |- token: '${{ secrets.GITEA_TOKEN }}'
builds/**
api_key: '${{ secrets.GITEA_TOKEN }}'
title: 'Release ${{ env.RELEASE_TAG }}' title: 'Release ${{ env.RELEASE_TAG }}'
body: '${{ github.event.inputs.description }}' body: |
prerelease: ${{ github.event.inputs.prerelease }} ## LuckyRobots Game Release ${{ env.RELEASE_TAG }}
tag_name: '${{ env.RELEASE_TAG }}'
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 }}'

View File

@ -6,48 +6,9 @@ on:
branches: [main, develop] branches: [main, develop]
jobs: jobs:
# windows-build: build-and-release:
# runs-on: windows runs-on: windows
# steps: if: github.ref == 'refs/heads/main' || github.ref == 'refs/heads/develop'
# - 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
# # Set environment variables for Unreal Engine
# echo "UE_ROOT=C:\Program Files\Epic Games\UE_5.2" >> $GITHUB_ENV
# - 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"
# # 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
macos-build:
runs-on: macos
steps: steps:
- name: Checkout repository - name: Checkout repository
uses: actions/checkout@v3 uses: actions/checkout@v3
@ -55,6 +16,241 @@ jobs:
lfs: true lfs: true
fetch-depth: 0 fetch-depth: 0
- name: Setup environment
run: |
# Set environment variables for Unreal Engine
echo "UE_ROOT=E:/Games/UE_5.5" >> $GITHUB_ENV
# Set environment variables for Linux toolchain
$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)
if (!(Test-Path "Builds/Windows")) { New-Item -ItemType Directory -Path "Builds/Windows" -Force }
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
run: |
# Chmod command doesn't exist in Windows, use PowerShell to run the bash script
& 'C:\Program Files\Git\bin\bash.exe' -c "./win_build.sh"
- name: Build for Linux
run: |
# Chmod command doesn't exist in Windows, use PowerShell to run the bash script
& 'C:\Program Files\Git\bin\bash.exe' -c "./linux_build.sh"
- name: Package builds
run: |
echo "Packaging Windows build..."
if [ -d "Builds/Windows" ]; then
cd Builds/Windows
zip -r ../../PackagedReleases/LuckyRobots-Windows.zip .
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:
runs-on: macos
if: github.ref == 'refs/heads/main' || github.ref == 'refs/heads/develop'
steps:
- name: Checkout repository
uses: actions/checkout@v3
with:
lfs: true
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
@ -75,58 +271,79 @@ jobs:
chmod +x ./mac_build.sh chmod +x ./mac_build.sh
./mac_build.sh ./mac_build.sh
- name: Upload build artifacts - name: Prepare Mac release
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: |
# Set tag name echo "Preparing packaged files for release..."
TAG="v${{ github.run_number }}"
echo "Creating git tag: $TAG"
# Configure git # Create a directory for release files
git config --global user.email "actions@gitea.com" mkdir -p PackagedReleases
git config --global user.name "Gitea Actions"
# Check if tag already exists # Debug: Show what we're packaging
if git rev-parse "$TAG" >/dev/null 2>&1; then echo "=== Packaging for Release ==="
echo "Tag $TAG already exists" echo "Build directory contents:"
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 "Creating new tag $TAG" echo "No .app bundle found in Builds directory"
git tag -a "$TAG" -m "Release $TAG"
# Push the tag explicitly # Look for a directory that might be a bundle but not named .app
git push origin "$TAG" MAIN_BUILD_DIR=$(find Builds -mindepth 1 -maxdepth 1 -type d | head -1)
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
# Verify tag exists echo "Packaged releases:"
git fetch --tags ls -la PackagedReleases/
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 - name: Upload macOS Build Artifact
if: github.ref == 'refs/heads/main' || github.ref == 'refs/heads/develop' uses: actions/upload-artifact@v3
uses: https://gitea.com/actions/release-action@main if: success()
with: with:
files: |- name: LuckyRobots-macOS
Builds/** path: PackagedReleases/*-macOS.zip
api_key: '${{ secrets.GITEA_TOKEN }}' retention-days: 365
title: 'Release ${{ env.RELEASE_TAG }}'
body: 'Automated release from CI build #${{ github.run_number }}' - name: Create Release Note
prerelease: ${{ github.ref != 'refs/heads/main' }} run: |
tag_name: '${{ env.RELEASE_TAG }}' 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
if: github.ref == 'refs/heads/main' || github.ref == 'refs/heads/develop'
uses: https://gitea.com/actions/gitea-release-action@main
with:
token: ${{ secrets.GITEATOKEN }}
tag_name: ${{ env.RELEASE_TAG }}
title: "Release ${{ env.RELEASE_TAG }} - macOS"
body: |
## macOS Build Available as Artifact
The macOS build is available as an artifact due to its large file size.
[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,150 +21,6 @@
"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"
@ -713,6 +569,38 @@
"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"
@ -4996,7 +4884,6 @@
{ {
"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",
@ -5141,47 +5028,10 @@
{ {
"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"
}, },
@ -30924,7 +30774,6 @@
{ {
"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",
@ -30957,8 +30806,6 @@
{ {
"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.

BIN
Builds/Windows/Luckyrobots/Binaries/Win64/tbbmalloc.pdb (Stored with Git LFS) Normal file

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.

93
linux_build.sh Normal file
View File

@ -0,0 +1,93 @@
#!/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"

60
win_build.sh Normal file
View File

@ -0,0 +1,60 @@
#!/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