This commit is contained in:
parent
b42341b73f
commit
fd8ba36795
70
.gitea/workflows/create-release.yml
Normal file
70
.gitea/workflows/create-release.yml
Normal file
@ -0,0 +1,70 @@
|
||||
name: Create Release
|
||||
|
||||
on:
|
||||
workflow_dispatch:
|
||||
inputs:
|
||||
version:
|
||||
description: 'Version for this release (e.g. 1.0.0)'
|
||||
required: true
|
||||
default: ''
|
||||
prerelease:
|
||||
description: 'Is this a pre-release?'
|
||||
required: true
|
||||
default: 'false'
|
||||
type: boolean
|
||||
description:
|
||||
description: 'Release description'
|
||||
required: false
|
||||
default: 'New release'
|
||||
|
||||
jobs:
|
||||
create-release:
|
||||
runs-on: macos
|
||||
steps:
|
||||
- name: Checkout repository
|
||||
uses: actions/checkout@v3
|
||||
with:
|
||||
lfs: true
|
||||
fetch-depth: 0
|
||||
|
||||
- name: Create Tag
|
||||
if: github.ref == 'refs/heads/main' || github.ref == 'refs/heads/develop'
|
||||
run: |
|
||||
TAG="v${{ github.run_number }}"
|
||||
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/goran/lyra_game_ue.git"
|
||||
|
||||
# Set git to not prompt for input
|
||||
export 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 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 }}"
|
||||
files: Builds/*.app
|
@ -5,164 +5,8 @@ on:
|
||||
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
|
||||
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 a custom build output directory in temp
|
||||
$buildRoot = Join-Path $env:TEMP "unreal-build"
|
||||
$dotnetBuildDir = Join-Path $buildRoot "dotnet-build"
|
||||
$buildOutputDir = Join-Path $buildRoot "output"
|
||||
|
||||
# Create directories with full permissions
|
||||
foreach ($dir in @($buildRoot, $dotnetBuildDir, $buildOutputDir)) {
|
||||
New-Item -ItemType Directory -Force -Path $dir
|
||||
icacls $dir /grant Everyone:F /T
|
||||
}
|
||||
|
||||
# Set environment variables for build paths
|
||||
echo "DOTNET_BUILD_OUTPUT_DIR=$dotnetBuildDir" >> $Env:GITHUB_ENV
|
||||
echo "DOTNET_CLI_HOME=$dotnetBuildDir" >> $Env:GITHUB_ENV
|
||||
echo "DOTNET_SKIP_FIRST_TIME_EXPERIENCE=1" >> $Env:GITHUB_ENV
|
||||
echo "DOTNET_CLI_TELEMETRY_OPTOUT=1" >> $Env:GITHUB_ENV
|
||||
echo "DOTNET_USE_POLLING_FILE_WATCHER=true" >> $Env:GITHUB_ENV
|
||||
echo "MSBUILDDISABLENODEREUSE=1" >> $Env:GITHUB_ENV
|
||||
echo "MSBuildSDKsPath=$env:UE_ROOT\Binaries\ThirdParty\DotNet\8.0.300\win-x64\sdk\8.0.300\Sdks" >> $Env:GITHUB_ENV
|
||||
|
||||
# Clean any existing build artifacts
|
||||
Remove-Item -Path "$dotnetBuildDir\*" -Recurse -Force -ErrorAction SilentlyContinue
|
||||
Remove-Item -Path "$buildOutputDir\*" -Recurse -Force -ErrorAction SilentlyContinue
|
||||
|
||||
# Set up global.json to use the correct SDK version
|
||||
$globalJson = @'
|
||||
{
|
||||
"sdk": {
|
||||
"version": "8.0.300",
|
||||
"rollForward": "latestFeature"
|
||||
}
|
||||
}
|
||||
'@
|
||||
Set-Content -Path "global.json" -Value $globalJson
|
||||
|
||||
# Create Directory.Build.props to redirect all outputs
|
||||
$buildPropsContent = @'
|
||||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<Project>
|
||||
<PropertyGroup>
|
||||
<BaseIntermediateOutputPath>$(DOTNET_BUILD_OUTPUT_DIR)\obj\$(MSBuildProjectName)\</BaseIntermediateOutputPath>
|
||||
<BaseOutputPath>$(DOTNET_BUILD_OUTPUT_DIR)\bin\$(MSBuildProjectName)\</BaseOutputPath>
|
||||
<IntermediateOutputPath>$(BaseIntermediateOutputPath)</IntermediateOutputPath>
|
||||
<OutputPath>$(BaseOutputPath)</OutputPath>
|
||||
<AppendTargetFrameworkToOutputPath>false</AppendTargetFrameworkToOutputPath>
|
||||
<AppendRuntimeIdentifierToOutputPath>false</AppendRuntimeIdentifierToOutputPath>
|
||||
<GenerateRuntimeConfigurationFiles>true</GenerateRuntimeConfigurationFiles>
|
||||
<CopyLocalLockFileAssemblies>true</CopyLocalLockFileAssemblies>
|
||||
<RestoreNoCache>true</RestoreNoCache>
|
||||
<EnforceWritePermissions>false</EnforceWritePermissions>
|
||||
</PropertyGroup>
|
||||
</Project>
|
||||
'@
|
||||
Set-Content -Path "Directory.Build.props" -Value $buildPropsContent -Encoding UTF8
|
||||
|
||||
# Create a temporary nuget.config file to use a local package cache
|
||||
$nugetConfig = @'
|
||||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<configuration>
|
||||
<config>
|
||||
<add key="globalPackagesFolder" value="$(DOTNET_BUILD_OUTPUT_DIR)\packages" />
|
||||
</config>
|
||||
</configuration>
|
||||
'@
|
||||
Set-Content -Path "nuget.config" -Value $nugetConfig -Encoding UTF8
|
||||
|
||||
# Set MSBuild configuration to use the temp directory
|
||||
$MSBuildPath = Join-Path $env:UE_ROOT "Binaries\ThirdParty\DotNet\8.0.300\win-x64\sdk\8.0.300"
|
||||
$env:MSBuildExtensionsPath = $MSBuildPath
|
||||
$env:MSBuildSDKsPath = Join-Path $MSBuildPath "Sdks"
|
||||
echo "MSBuildExtensionsPath=$env:MSBuildExtensionsPath" >> $Env:GITHUB_ENV
|
||||
echo "MSBuildSDKsPath=$env:MSBuildSDKsPath" >> $Env:GITHUB_ENV
|
||||
echo "MSBUILD_EXE_PATH=$MSBuildPath\MSBuild.dll" >> $Env:GITHUB_ENV
|
||||
|
||||
- name: Locate .uproject file
|
||||
run: |
|
||||
$projectPath = Get-ChildItem -Path ".\" -Filter "*.uproject" -Recurse | Select-Object -First 1 -ExpandProperty FullName
|
||||
if (-not $projectPath) {
|
||||
Write-Error "No .uproject file found in repository"
|
||||
exit 1
|
||||
}
|
||||
echo "UPROJECT_PATH=$projectPath" >> $Env:GITHUB_ENV
|
||||
Write-Host "Found project file: $projectPath"
|
||||
|
||||
- name: Build Unreal Project
|
||||
run: |
|
||||
# Create and set permissions for build output directory
|
||||
$buildOutputDir = Join-Path $env:TEMP "unreal-build\output"
|
||||
New-Item -ItemType Directory -Force -Path $buildOutputDir
|
||||
icacls $buildOutputDir /grant Everyone:F
|
||||
|
||||
# Register dotnet locally
|
||||
$dotnetPath = Join-Path $env:UE_ROOT "Binaries\ThirdParty\DotNet\8.0.300\win-x64\dotnet.exe"
|
||||
$env:PATH = "$env:UE_ROOT\Binaries\ThirdParty\DotNet\8.0.300\win-x64;$env:PATH"
|
||||
|
||||
# Make a local copy of the MSBuild directory with write permissions
|
||||
$customMSBuildDir = Join-Path $env:TEMP "msbuild-custom"
|
||||
New-Item -ItemType Directory -Force -Path $customMSBuildDir
|
||||
Copy-Item -Path "$env:UE_ROOT\Binaries\ThirdParty\DotNet\8.0.300\win-x64\sdk\8.0.300\*" -Destination $customMSBuildDir -Recurse -Force
|
||||
icacls $customMSBuildDir /grant Everyone:F /T
|
||||
|
||||
# Set environment variables for the custom MSBuild
|
||||
$env:MSBuildExtensionsPath = $customMSBuildDir
|
||||
$env:MSBuildSDKsPath = Join-Path $customMSBuildDir "Sdks"
|
||||
|
||||
# Run the build with environment variables
|
||||
$uatPath = Join-Path $env:UE_ROOT "Build\BatchFiles\RunUAT.bat"
|
||||
$envVars = "set DOTNET_CLI_HOME=$env:DOTNET_CLI_HOME && " +
|
||||
"set DOTNET_BUILD_OUTPUT_DIR=$env:DOTNET_BUILD_OUTPUT_DIR && " +
|
||||
"set DOTNET_SKIP_FIRST_TIME_EXPERIENCE=1 && " +
|
||||
"set DOTNET_CLI_TELEMETRY_OPTOUT=1 && " +
|
||||
"set DOTNET_USE_POLLING_FILE_WATCHER=true && " +
|
||||
"set MSBuildExtensionsPath=$env:MSBuildExtensionsPath && " +
|
||||
"set MSBuildSDKsPath=$env:MSBuildSDKsPath && " +
|
||||
"set MSBUILD_EXE_PATH=$env:MSBUILD_EXE_PATH && "
|
||||
|
||||
# Find project file
|
||||
$projectPath = Get-ChildItem -Path ".\" -Filter "*.uproject" -Recurse | Select-Object -First 1 -ExpandProperty FullName
|
||||
if (-not $projectPath) {
|
||||
Write-Error "No .uproject file found in repository"
|
||||
exit 1
|
||||
}
|
||||
Write-Host "Using project file: $projectPath"
|
||||
|
||||
# Run UAT with full command
|
||||
$cmdLine = "$envVars cmd.exe /c `"$uatPath`" BuildCookRun -project=`"$projectPath`" -noP4 -platform=Win64 -clientconfig=Development -cook -build -stage -pak -archive -archivedirectory=`"$buildOutputDir`""
|
||||
Write-Host "Running command: $cmdLine"
|
||||
Invoke-Expression $cmdLine
|
||||
|
||||
- name: Upload build artifacts
|
||||
uses: actions/upload-artifact@v3
|
||||
with:
|
||||
name: windows-build
|
||||
path: BuildOutput/
|
||||
retention-days: 7
|
||||
|
||||
# macos-build:
|
||||
# runs-on: macos
|
||||
# windows-build:
|
||||
# runs-on: windows
|
||||
# steps:
|
||||
# - name: Checkout repository
|
||||
# uses: actions/checkout@v3
|
||||
@ -170,72 +14,270 @@ jobs:
|
||||
# lfs: true
|
||||
# fetch-depth: 0
|
||||
|
||||
# - name: Setup Unreal Engine
|
||||
# - name: Set Unreal Engine Path
|
||||
# run: |
|
||||
# # Use the correct path where Unreal Engine is installed
|
||||
# UE_PATH="/Users/Shared/Epic Games/UE_5.5"
|
||||
# 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 a custom build output directory in temp
|
||||
# $buildRoot = Join-Path $env:TEMP "unreal-build"
|
||||
# $dotnetBuildDir = Join-Path $buildRoot "dotnet-build"
|
||||
# $buildOutputDir = Join-Path $buildRoot "output"
|
||||
|
||||
# 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"
|
||||
# # Create directories with full permissions
|
||||
# foreach ($dir in @($buildRoot, $dotnetBuildDir, $buildOutputDir)) {
|
||||
# New-Item -ItemType Directory -Force -Path $dir
|
||||
# icacls $dir /grant Everyone:F /T
|
||||
# }
|
||||
|
||||
# # Set environment variables for build paths
|
||||
# echo "DOTNET_BUILD_OUTPUT_DIR=$dotnetBuildDir" >> $Env:GITHUB_ENV
|
||||
# echo "DOTNET_CLI_HOME=$dotnetBuildDir" >> $Env:GITHUB_ENV
|
||||
# echo "DOTNET_SKIP_FIRST_TIME_EXPERIENCE=1" >> $Env:GITHUB_ENV
|
||||
# echo "DOTNET_CLI_TELEMETRY_OPTOUT=1" >> $Env:GITHUB_ENV
|
||||
# echo "DOTNET_USE_POLLING_FILE_WATCHER=true" >> $Env:GITHUB_ENV
|
||||
# echo "MSBUILDDISABLENODEREUSE=1" >> $Env:GITHUB_ENV
|
||||
# echo "MSBuildSDKsPath=$env:UE_ROOT\Binaries\ThirdParty\DotNet\8.0.300\win-x64\sdk\8.0.300\Sdks" >> $Env:GITHUB_ENV
|
||||
|
||||
# # Clean any existing build artifacts
|
||||
# Remove-Item -Path "$dotnetBuildDir\*" -Recurse -Force -ErrorAction SilentlyContinue
|
||||
# Remove-Item -Path "$buildOutputDir\*" -Recurse -Force -ErrorAction SilentlyContinue
|
||||
|
||||
# # Set up global.json to use the correct SDK version
|
||||
# $globalJson = @'
|
||||
# {
|
||||
# "sdk": {
|
||||
# "version": "8.0.300",
|
||||
# "rollForward": "latestFeature"
|
||||
# }
|
||||
# }
|
||||
# '@
|
||||
# Set-Content -Path "global.json" -Value $globalJson
|
||||
|
||||
# # Create Directory.Build.props to redirect all outputs
|
||||
# $buildPropsContent = @'
|
||||
# <?xml version="1.0" encoding="utf-8"?>
|
||||
# <Project>
|
||||
# <PropertyGroup>
|
||||
# <BaseIntermediateOutputPath>$(DOTNET_BUILD_OUTPUT_DIR)\obj\$(MSBuildProjectName)\</BaseIntermediateOutputPath>
|
||||
# <BaseOutputPath>$(DOTNET_BUILD_OUTPUT_DIR)\bin\$(MSBuildProjectName)\</BaseOutputPath>
|
||||
# <IntermediateOutputPath>$(BaseIntermediateOutputPath)</IntermediateOutputPath>
|
||||
# <OutputPath>$(BaseOutputPath)</OutputPath>
|
||||
# <AppendTargetFrameworkToOutputPath>false</AppendTargetFrameworkToOutputPath>
|
||||
# <AppendRuntimeIdentifierToOutputPath>false</AppendRuntimeIdentifierToOutputPath>
|
||||
# <GenerateRuntimeConfigurationFiles>true</GenerateRuntimeConfigurationFiles>
|
||||
# <CopyLocalLockFileAssemblies>true</CopyLocalLockFileAssemblies>
|
||||
# <RestoreNoCache>true</RestoreNoCache>
|
||||
# <EnforceWritePermissions>false</EnforceWritePermissions>
|
||||
# </PropertyGroup>
|
||||
# </Project>
|
||||
# '@
|
||||
# Set-Content -Path "Directory.Build.props" -Value $buildPropsContent -Encoding UTF8
|
||||
|
||||
# # Create a temporary nuget.config file to use a local package cache
|
||||
# $nugetConfig = @'
|
||||
# <?xml version="1.0" encoding="utf-8"?>
|
||||
# <configuration>
|
||||
# <config>
|
||||
# <add key="globalPackagesFolder" value="$(DOTNET_BUILD_OUTPUT_DIR)\packages" />
|
||||
# </config>
|
||||
# </configuration>
|
||||
# '@
|
||||
# Set-Content -Path "nuget.config" -Value $nugetConfig -Encoding UTF8
|
||||
|
||||
# # Set MSBuild configuration to use the temp directory
|
||||
# $MSBuildPath = Join-Path $env:UE_ROOT "Binaries\ThirdParty\DotNet\8.0.300\win-x64\sdk\8.0.300"
|
||||
# $env:MSBuildExtensionsPath = $MSBuildPath
|
||||
# $env:MSBuildSDKsPath = Join-Path $MSBuildPath "Sdks"
|
||||
# echo "MSBuildExtensionsPath=$env:MSBuildExtensionsPath" >> $Env:GITHUB_ENV
|
||||
# echo "MSBuildSDKsPath=$env:MSBuildSDKsPath" >> $Env:GITHUB_ENV
|
||||
# echo "MSBUILD_EXE_PATH=$MSBuildPath\MSBuild.dll" >> $Env:GITHUB_ENV
|
||||
|
||||
# - name: Locate .uproject file
|
||||
# run: |
|
||||
# $projectPath = Get-ChildItem -Path ".\" -Filter "*.uproject" -Recurse | Select-Object -First 1 -ExpandProperty FullName
|
||||
# if (-not $projectPath) {
|
||||
# Write-Error "No .uproject file found in repository"
|
||||
# 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"
|
||||
|
||||
# }
|
||||
# echo "UPROJECT_PATH=$projectPath" >> $Env:GITHUB_ENV
|
||||
# Write-Host "Found project file: $projectPath"
|
||||
|
||||
# - 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
|
||||
# # Create and set permissions for build output directory
|
||||
# $buildOutputDir = Join-Path $env:TEMP "unreal-build\output"
|
||||
# New-Item -ItemType Directory -Force -Path $buildOutputDir
|
||||
# icacls $buildOutputDir /grant Everyone:F
|
||||
|
||||
# echo "=== Unreal Engine Information ==="
|
||||
# ls -la "$UE_ROOT/Build/BatchFiles"
|
||||
# # Register dotnet locally
|
||||
# $dotnetPath = Join-Path $env:UE_ROOT "Binaries\ThirdParty\DotNet\8.0.300\win-x64\dotnet.exe"
|
||||
# $env:PATH = "$env:UE_ROOT\Binaries\ThirdParty\DotNet\8.0.300\win-x64;$env:PATH"
|
||||
|
||||
# echo "=== Project Information ==="
|
||||
# # Detailed search for the project file
|
||||
# echo "Searching for .uproject files:"
|
||||
# find . -name "*.uproject" -type f
|
||||
# # Make a local copy of the MSBuild directory with write permissions
|
||||
# $customMSBuildDir = Join-Path $env:TEMP "msbuild-custom"
|
||||
# New-Item -ItemType Directory -Force -Path $customMSBuildDir
|
||||
# Copy-Item -Path "$env:UE_ROOT\Binaries\ThirdParty\DotNet\8.0.300\win-x64\sdk\8.0.300\*" -Destination $customMSBuildDir -Recurse -Force
|
||||
# icacls $customMSBuildDir /grant Everyone:F /T
|
||||
|
||||
# # 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"
|
||||
# # Set environment variables for the custom MSBuild
|
||||
# $env:MSBuildExtensionsPath = $customMSBuildDir
|
||||
# $env:MSBuildSDKsPath = Join-Path $customMSBuildDir "Sdks"
|
||||
|
||||
# # Run the build with environment variables
|
||||
# $uatPath = Join-Path $env:UE_ROOT "Build\BatchFiles\RunUAT.bat"
|
||||
# $envVars = "set DOTNET_CLI_HOME=$env:DOTNET_CLI_HOME && " +
|
||||
# "set DOTNET_BUILD_OUTPUT_DIR=$env:DOTNET_BUILD_OUTPUT_DIR && " +
|
||||
# "set DOTNET_SKIP_FIRST_TIME_EXPERIENCE=1 && " +
|
||||
# "set DOTNET_CLI_TELEMETRY_OPTOUT=1 && " +
|
||||
# "set DOTNET_USE_POLLING_FILE_WATCHER=true && " +
|
||||
# "set MSBuildExtensionsPath=$env:MSBuildExtensionsPath && " +
|
||||
# "set MSBuildSDKsPath=$env:MSBuildSDKsPath && " +
|
||||
# "set MSBUILD_EXE_PATH=$env:MSBUILD_EXE_PATH && "
|
||||
|
||||
# # Find project file
|
||||
# $projectPath = Get-ChildItem -Path ".\" -Filter "*.uproject" -Recurse | Select-Object -First 1 -ExpandProperty FullName
|
||||
# if (-not $projectPath) {
|
||||
# Write-Error "No .uproject file found in repository"
|
||||
# exit 1
|
||||
# fi
|
||||
# }
|
||||
# Write-Host "Using project file: $projectPath"
|
||||
|
||||
# # 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"
|
||||
|
||||
# # Run UAT with full command
|
||||
# $cmdLine = "$envVars cmd.exe /c `"$uatPath`" BuildCookRun -project=`"$projectPath`" -noP4 -platform=Win64 -clientconfig=Development -cook -build -stage -pak -archive -archivedirectory=`"$buildOutputDir`""
|
||||
# Write-Host "Running command: $cmdLine"
|
||||
# Invoke-Expression $cmdLine
|
||||
|
||||
# - name: Upload build artifacts
|
||||
# uses: actions/upload-artifact@v3
|
||||
# with:
|
||||
# name: macos-build
|
||||
# path: Build/
|
||||
# retention-days: 7
|
||||
# name: windows-build
|
||||
# path: BuildOutput/
|
||||
# retention-days: 7
|
||||
|
||||
macos-build:
|
||||
runs-on: macos
|
||||
steps:
|
||||
- name: Checkout repository
|
||||
uses: actions/checkout@v4
|
||||
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)/Builds"
|
||||
|
||||
- name: Upload build artifacts
|
||||
uses: actions/upload-artifact@v4
|
||||
with:
|
||||
name: macos-build
|
||||
path: Builds/
|
||||
retention-days: 7
|
||||
|
||||
- name: Create Tag
|
||||
if: github.ref == 'refs/heads/main' || github.ref == 'refs/heads/develop'
|
||||
run: |
|
||||
TAG="v${{ github.run_number }}"
|
||||
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/goran/lyra_game_ue.git"
|
||||
|
||||
# Set git to not prompt for input
|
||||
export 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 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 }}"
|
||||
files: Builds/*.app
|
Loading…
x
Reference in New Issue
Block a user