Files
Test-UE5-Project/.gitea/workflows/build-editor.yml
Carlos ec87668506 ci: add Gitea Actions workflow to build + publish editor binaries
Builds the UE 5.7.4 editor target on a Windows host-mode runner and
publishes the binaries zip to gs://keystone-501223-build-artifacts on
every push to master (poor-man's-UGS producer side).

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
2026-07-05 13:01:15 -04:00

71 lines
3.1 KiB
YAML

# Gitea Actions — build the UE 5.7.4 editor binaries on a Windows host-mode runner
# and publish them to the GCS artifacts bucket (the poor-man's-UGS producer side).
#
# Runner: registered on a Windows box with label `windows:host` (host mode, NOT a
# container) so it can use the installed UE 5.7.4 + VS 2022 + gcloud.
#
# NOTE (proof shortcut): BUILDGRAPH_SCRIPT points at the build-infra folder on the
# runner's local disk, because for now the runner and build-infra live on the same
# machine. For a real multi-agent fleet, vendor BuildEditor.xml into this repo (or a
# submodule) so any runner has it — see build-infra/RUNBOOK.md §9.
name: Build Editor
on:
workflow_dispatch:
push:
branches: [ master ]
concurrency:
group: build-editor
cancel-in-progress: true
jobs:
build-editor:
runs-on: windows # matches the runner's `windows` label (host mode)
env:
UE_ROOT: D:\Unreal\UE_5.7
PROJECT_NAME: ASGCGameJam2026
ARTIFACTS_BUCKET: keystone-501223-build-artifacts
BUILDGRAPH_SCRIPT: D:\asgcgj\build-infra\buildgraph\BuildEditor.xml
GCLOUD_BIN: C:\Users\aorti\AppData\Local\Google\Cloud SDK\google-cloud-sdk\bin
steps:
# Editor binaries are pure C++ — no Content needed — so skip LFS (faster, and
# avoids LFS auth in CI). Packaged/cook builds WOULD need lfs: true.
- uses: actions/checkout@v4
with:
lfs: false
- name: Compute canonical BUILD_ID
shell: powershell
run: |
$short = "$env:GITHUB_SHA".Substring(0,8)
$buildId = "Development-$env:GITHUB_REF_NAME-$short"
"BUILD_ID=$buildId" | Out-File -FilePath $env:GITHUB_ENV -Append -Encoding utf8
Write-Host "BUILD_ID=$buildId"
- name: BuildGraph — editor binaries
shell: powershell
run: |
& "$env:UE_ROOT\Engine\Build\BatchFiles\RunUAT.bat" BuildGraph `
-Script="$env:BUILDGRAPH_SCRIPT" `
-Target="EditorBinaries" `
-set:ProjectName=$env:PROJECT_NAME `
-set:ProjectDir="$env:GITHUB_WORKSPACE" `
-set:ProjectPath="$env:GITHUB_WORKSPACE\$env:PROJECT_NAME.uproject" `
-set:BuildVersion=$env:BUILD_ID `
-set:OutputDir="$env:GITHUB_WORKSPACE\LocalBuilds"
if ($LASTEXITCODE -ne 0) { throw "BuildGraph failed ($LASTEXITCODE)" }
- name: Publish to artifacts bucket
shell: powershell
run: |
$env:PATH += ";$env:GCLOUD_BIN"
$sha = "$env:GITHUB_SHA".Substring(0,8)
$src = "$env:GITHUB_WORKSPACE\LocalBuilds\EditorBinaries-Win64.zip"
if (-not (Test-Path $src)) { throw "Editor binaries zip not found: $src" }
gcloud storage cp $src "gs://$env:ARTIFACTS_BUCKET/editor/EditorBinaries-Win64-$sha.zip"
gcloud storage cp $src "gs://$env:ARTIFACTS_BUCKET/editor/EditorBinaries-Win64-latest.zip"
"$env:GITHUB_SHA" | Out-File -Encoding ascii latest.sha
gcloud storage cp latest.sha "gs://$env:ARTIFACTS_BUCKET/editor/latest.sha"
Write-Host "Published EditorBinaries-Win64 ($sha) -> gs://$env:ARTIFACTS_BUCKET/editor/"