Files
ZMMO/Plugins/VisualStudioTools/azure-pipelines/compliance.yml
Mateus Rodrigues 3d4d0de40b feat: ZMMO client base (Game/Entity|Controller|Modes|Network)
Estrutura inicial do cliente Unreal Zeus MMO alinhada ao padrao
"cliente solto + servidor valida input/velocidade" (ADR 0038):

- Source/ZMMO/Game/Entity/ — IZMMOEntityInterface, AZMMOEntity (base
  AActor para Mob/NPC/Object), AZMMOPlayerCharacter (player local com
  CMC livre, Enhanced Input, envio de C_INPUT_AXIS), AZMMOPlayerProxy
  (snapshot-only para players remotos).
- Source/ZMMO/Game/Controller/ — AZMMOPlayerController com IMC defaults
  (IMC_Default + IMC_MouseLook) e suporte opcional a virtual joystick.
- Source/ZMMO/Game/Modes/ — AZMMOGameMode (defaults para PlayerCharacter
  / PlayerController), UZMMOGameInstance (auto-connect ao servidor Zeus
  em Init e logging dos eventos OnConnected/OnDisconnected/...).
- Source/ZMMO/Game/Network/ — UZMMOWorldSubsystem (registry
  EntityId -> AActor*, dispatch dos delegates OnPlayerSpawned/Despawned/
  StateUpdate; ignora snapshots locais do cliente solto).
- Config/DefaultEngine.ini — GlobalDefaultGameMode aponta para
  /Script/ZMMO.ZMMOGameMode; GameInstanceClass para
  /Script/ZMMO.ZMMOGameInstance; redirects para a nova hierarquia.
- ZMMO.Build.cs — depende de ZeusNetwork; PublicIncludePaths para a
  nova arvore Game/Entity|Controller|Modes|Network.
- Content — assets do template ThirdPerson (Mannequins, IAs/IMCs,
  Lvl_ThirdPerson + TestWorld). Os Variant_* levels ficam no commit
  inicial mas serao limpos numa proxima sessao com aprovacao explicita
  (Master Rule para .umap/.uasset).

Notas:
- BP_ThirdPersonCharacter/GameMode/PlayerController ainda apontam para
  a hierarquia antiga e estao a aguardar aprovacao para remocao
  (Master Rule).
- README.md descreve a arquitectura e o smoke test de conexao.
2026-05-07 20:21:21 -03:00

126 lines
4.6 KiB
YAML

# IMPORTANT:
# Do not run BinSkim because we do not control producing the binaries. That process is owned by
# Epic. We just provide source code. Since we do not control the build, BinSkim is not needed.
variables:
Codeql.Enabled: true
Codeql.SourceRoot: '$(Build.SourcesDirectory)'
trigger:
- main
pr:
autoCancel: true
branches:
include:
- main
- dev/*
schedules:
- cron: "0 12 * * Sun"
displayName: Weekly run
branches:
include:
- main
always: true
resources:
repositories:
- repository: 1ESPipelineTemplates
type: git
name: 1ESPipelineTemplates/1ESPipelineTemplates
ref: refs/tags/release
extends:
template: v1/1ES.Official.PipelineTemplate.yml@1ESPipelineTemplates
parameters:
pool:
name: VSEngSS-MicroBuild2022-1ES
os: windows
customBuildTags:
- ES365AIMigrationTooling
stages:
- stage: stage
jobs:
- job: 'UnrealEngine_VisualStudioTools_Compliance'
timeoutInMinutes: 1440
steps:
- task: CmdLine@2
displayName: 'Clone Unreal Engine Repository'
inputs:
script: 'git clone "https://$(token)@github.com/EpicGames/UnrealEngine" --single-branch --branch $(ue_branch) --depth 1 ue'
workingDirectory: '$(Agent.BuildDirectory)'
- task: CmdLine@2
displayName: 'Apply patch to allow us to pass linker flags to the build'
inputs:
script: 'git apply --ignore-whitespace $(Build.SourcesDirectory)/azure-pipelines/Support-extra-UBT-args-in-UAT.BuildPlugin.patch'
workingDirectory: '$(Agent.BuildDirectory)\ue'
- task: PowerShell@2
displayName: '[UE] Append /unattended option'
inputs:
targetType: 'inline'
script:
$filePath = "$(Agent.BuildDirectory)/ue/Setup.bat";
(Get-Content $filePath).Replace("/register", "/register /unattended") | Set-Content $filePath
- task: CmdLine@2
displayName: '[UE] Run Setup.bat'
inputs:
script: 'ue\Setup.bat --force'
workingDirectory: '$(Agent.BuildDirectory)'
- task: MSBuild@1
displayName: 'Build Plugin'
timeoutInMinutes: 300
inputs:
solution: '$(Build.SourcesDirectory)/build.proj'
msbuildArguments: '/p:UnrealEngine=$(Agent.BuildDirectory)\ue /p:OutputPath=$(Build.ArtifactStagingDirectory)\drop /p:VulkanReadyBinaries=true'
createLogFile: true
- task: CopyFiles@2
displayName: 'Collect binaries to analyze'
inputs:
SourceFolder: '$(Build.ArtifactStagingDirectory)\drop'
Contents: '**\unrealeditor-visualstudiotools.*'
TargetFolder: '$(Build.ArtifactStagingDirectory)\binariesToAnalyze'
CleanTargetFolder: true
OverWrite: true
- task: PoliCheck@2
inputs:
targetType: 'F'
targetArgument: '$(Build.SourcesDirectory)'
- task: ComponentGovernanceComponentDetection@0
inputs:
ignoreDirectories: '$(Agent.BuildDirectory)\ue'
displayName: 'Component Detection'
- task: APIScan@2
displayName: 'Run APIScan'
inputs:
azureSubscription: 'VSEng-APIScanSC'
softwareFolder: '$(Build.ArtifactStagingDirectory)/binariesToAnalyze'
softwareName: 'Visual Studio Tools for Unreal Engine'
softwareVersionNum: '2.4'
softwareBuildNum: '$(Build.BuildId)'
toolVersion: 'Latest'
env:
AzureServicesAuthConnectionString: RunAs=App;AppId=d318cba7-db4d-4fb3-99e1-01879cb74e91;TenantId=72f988bf-86f1-41af-91ab-2d7cd011db47;ServiceConnectionId=93e24264-c5e6-4681-8175-ec8a41668480;
SYSTEM_ACCESSTOKEN: $(System.AccessToken)
- task: SDLNativeRules@3
displayName: 'Run the PREfast SDL Native Rules for MSBuild'
env:
SYSTEM_ACCESSTOKEN: $(System.AccessToken)
inputs:
publishXML: true
userProvideBuildInfo: auto
rulesetName: Recommended
setupCommandlinePicker: 'vs2022'
- task: PublishSecurityAnalysisLogs@3
displayName: 'Publish security analysis logs'
inputs:
ArtifactName: 'CodeAnalysisLogs'
ArtifactType: 'Container'
AllTools: true
ToolLogsNotFoundAction: 'Standard'
- task: TSAUpload@2
displayName: 'TSA upload'
inputs:
GdnPublishTsaOnboard: True
GdnPublishTsaConfigFile: '$(Build.SourcesDirectory)/azure-pipelines/TSAOptions.json'