Add EveUnity scene UPM artifact smoke

This commit is contained in:
Meta Vens 2026-07-09 17:38:00 +01:00
commit b20e534c9c
13 changed files with 101 additions and 12 deletions

View file

@ -1,7 +1,8 @@
param(
[string] $CapabilityManifestPath = "packages\org.gamecult.eve.unity-uitoolkit\eve-runtime-capability.json",
[string] $RequestOutputPath = "artifacts\eveunity-uitoolkit-release-contract\latest\release-request.json",
[string] $ProofOutputPath = "artifacts\eveunity-uitoolkit-release\latest\release-artifact.json"
[string] $ProofOutputPath = "artifacts\eveunity-uitoolkit-release\latest\release-artifact.json",
[string] $ReleaseContractSmokePath = "scripts\run-eveunity-release-contract-smoke.ps1"
)
$ErrorActionPreference = "Stop"
@ -45,13 +46,21 @@ $artifactBuilderPath = Join-Path $projectRoot $releaseContract.artifactBuilder
if (-not (Test-Path -LiteralPath $artifactBuilderPath)) {
throw "EveUnity release artifact builder not found: $($releaseContract.artifactBuilder)"
}
$releaseContractSmoke = if ([System.IO.Path]::IsPathRooted($ReleaseContractSmokePath)) {
$ReleaseContractSmokePath
} else {
Join-Path $projectRoot $ReleaseContractSmokePath
}
if (-not (Test-Path -LiteralPath $releaseContractSmoke)) {
throw "EveUnity release contract smoke not found: $ReleaseContractSmokePath"
}
node --test (Join-Path $projectRoot "tools\eveunity\eveunity-release-artifact.test.mjs")
if ($LASTEXITCODE -ne 0) {
throw "EveUnity release artifact tests failed with exit code $LASTEXITCODE"
}
& (Join-Path $projectRoot "scripts\run-eveunity-release-contract-smoke.ps1") `
& $releaseContractSmoke `
-CapabilityManifestPath $CapabilityManifestPath `
-OutputPath $RequestOutputPath
if ($LASTEXITCODE -ne 0) {

View file

@ -142,7 +142,7 @@ foreach ($stage in @("release", "test", "capture")) {
}
$releaseContract = $manifest.lifecycle.release.releaseContract
foreach ($field in @("ownerRepo", "packageName", "packageRoot", "versionSource", "tagPattern", "artifactKind", "requestSchema", "requestBuilder", "artifactPattern", "publishProof")) {
foreach ($field in @("ownerRepo", "packageName", "packageRoot", "versionSource", "tagPattern", "artifactKind", "requestSchema", "requestBuilder", "artifactBuilder", "artifactPattern", "publishProof")) {
if (-not $releaseContract.$field) {
throw "EveUnity scene release contract missing $field"
}
@ -157,7 +157,7 @@ foreach ($pathProperty in @("packageRoot", "versionSource")) {
throw "EveUnity scene release contract $pathProperty does not exist: $relativePath"
}
}
foreach ($pathProperty in @("requestBuilder")) {
foreach ($pathProperty in @("requestBuilder", "artifactBuilder")) {
$relativePath = $releaseContract.$pathProperty
$absolutePath = Join-Path $projectRoot $relativePath
if (-not (Test-Path -LiteralPath $absolutePath)) {
@ -223,6 +223,7 @@ foreach ($pathProperty in @("requestBuilder", "advertisementPath")) {
& (Join-Path $projectRoot "scripts\run-eveunity-scene-split-handoff-smoke.ps1")
& (Join-Path $projectRoot "scripts\run-eveunity-scene-provider-shell-smoke.ps1")
& (Join-Path $projectRoot "scripts\run-eveunity-scene-release-contract-smoke.ps1")
& (Join-Path $projectRoot "scripts\run-eveunity-scene-release-artifact-smoke.ps1")
& (Join-Path $projectRoot "scripts\run-eveunity-scene-capture-contract-smoke.ps1")
& (Join-Path $projectRoot "scripts\run-eveunity-scene-capture-smoke.ps1")

View file

@ -0,0 +1,18 @@
param(
[string] $CapabilityManifestPath = "runtimes\incubating\eve-unity-scene\eve-runtime-capability.json",
[string] $RequestOutputPath = "artifacts\eveunity-scene-release-contract\latest\release-request.json",
[string] $ProofOutputPath = "artifacts\eveunity-scene-release\latest\release-artifact.json"
)
$ErrorActionPreference = "Stop"
$projectRoot = Split-Path -Parent $PSScriptRoot
& (Join-Path $projectRoot "scripts\run-eveunity-release-artifact-smoke.ps1") `
-CapabilityManifestPath $CapabilityManifestPath `
-RequestOutputPath $RequestOutputPath `
-ProofOutputPath $ProofOutputPath `
-ReleaseContractSmokePath "scripts\run-eveunity-scene-release-contract-smoke.ps1"
if ($LASTEXITCODE -ne 0) {
throw "EveUnity scene release artifact smoke failed with exit code $LASTEXITCODE"
}

View file

@ -26,7 +26,7 @@ $releaseContract = $manifest.lifecycle.release.releaseContract
if ($null -eq $releaseContract) {
throw "EveUnity scene release contract missing lifecycle.release.releaseContract"
}
foreach ($field in @("ownerRepo", "packageName", "packageRoot", "versionSource", "tagPattern", "artifactKind", "requestSchema", "requestBuilder", "artifactPattern", "publishProof")) {
foreach ($field in @("ownerRepo", "packageName", "packageRoot", "versionSource", "tagPattern", "artifactKind", "requestSchema", "requestBuilder", "artifactBuilder", "artifactPattern", "publishProof")) {
if (-not $releaseContract.$field) {
throw "EveUnity scene release contract missing $field"
}
@ -45,9 +45,10 @@ if ($releaseContract.artifactKind -ne "upm-package") {
}
$builderPath = Join-Path $projectRoot $releaseContract.requestBuilder
$artifactBuilderPath = Join-Path $projectRoot $releaseContract.artifactBuilder
$packagePath = Join-Path $projectRoot $releaseContract.versionSource
$packageRoot = Join-Path $projectRoot $releaseContract.packageRoot
foreach ($path in @($builderPath, $packagePath, $packageRoot)) {
foreach ($path in @($builderPath, $artifactBuilderPath, $packagePath, $packageRoot)) {
if (-not (Test-Path -LiteralPath $path)) {
throw "EveUnity scene release contract path not found: $path"
}

View file

@ -44,6 +44,7 @@ if (-not (Test-Path -LiteralPath $sourcePackageRoot)) {
$moveSets = @($handoff.moveSets)
$expectedMoveSets = @{
"unity-scene-runtime-body" = "runtime-body"
"unity-scene-upm-package" = "release"
"unity-scene-world-surface-lowering" = "world-surface-lowering"
"unity-scene-sai-plugin-projection" = "plugin-projection"
"unity-scene-norn-plugin-projection" = "plugin-projection"
@ -68,7 +69,7 @@ foreach ($id in $expectedMoveSets.Keys) {
}
$currentPaths = if ($null -eq $moveSet.currentPaths) { @() } else { @($moveSet.currentPaths) }
$observedProviderPaths = if ($null -eq $moveSet.observedProviderPaths) { @() } else { @($moveSet.observedProviderPaths) }
if ($id -in @("unity-scene-runtime-body", "unity-scene-world-surface-lowering", "unity-scene-sai-plugin-projection", "unity-scene-norn-plugin-projection", "unity-scene-tex-plugin-projection", "unity-scene-command-transport", "unity-scene-capture-lifecycle")) {
if ($id -in @("unity-scene-runtime-body", "unity-scene-upm-package", "unity-scene-world-surface-lowering", "unity-scene-sai-plugin-projection", "unity-scene-norn-plugin-projection", "unity-scene-tex-plugin-projection", "unity-scene-command-transport", "unity-scene-capture-lifecycle")) {
if ($currentPaths.Count -eq 0) {
throw "EveUnity scene split handoff move set $id must name current Eve incubation paths"
}

View file

@ -71,6 +71,7 @@ try {
& (Join-Path $PSScriptRoot "run-eveunity-split-handoff-smoke.ps1")
& (Join-Path $PSScriptRoot "run-eveunity-release-artifact-smoke.ps1")
& (Join-Path $PSScriptRoot "run-eveunity-scene-split-handoff-smoke.ps1")
& (Join-Path $PSScriptRoot "run-eveunity-scene-release-artifact-smoke.ps1")
& (Join-Path $PSScriptRoot "run-eveunity-scene-lifecycle-smoke.ps1")
& (Join-Path $PSScriptRoot "run-eveelectron-split-handoff-smoke.ps1")
& (Join-Path $PSScriptRoot "run-eveelectron-lifecycle-smoke.ps1")

View file

@ -218,7 +218,7 @@ node $consumerScript $consumerExport `
--expect-runtime-lifecycle-field "unity-uitoolkit:capture:captureContract.additionalProviderSurfaces.0.surfaceId:eve.world-smoke.surface" `
--expect-runtime-lifecycle-field "unity-uitoolkit:capture:captureContract.additionalProviderSurfaces.1.providerId:aetheria" `
--expect-runtime-lifecycle-field "unity-uitoolkit:capture:captureContract.additionalProviderSurfaces.1.surfaceId:aetheria.daemon.editor" `
--expect-runtime-lifecycle-status unity-scene:release:pending-unity-scene-package `
--expect-runtime-lifecycle-status unity-scene:release:unity-scene-upm-artifact-smoke `
--expect-runtime-lifecycle-status unity-scene:test:provider-shell-contract-skeleton `
--expect-runtime-lifecycle-status unity-scene:capture:pending-unity-scene-capture `
--expect-runtime-lifecycle-pending "unity-scene:release:Unity scene package release" `
@ -230,6 +230,7 @@ node $consumerScript $consumerExport `
--expect-runtime-lifecycle-field "unity-scene:release:releaseContract.versionSource:runtimes/incubating/eve-unity-scene/package.json" `
--expect-runtime-lifecycle-field "unity-scene:release:releaseContract.requestSchema:gamecult.eve.runtime_release_request.v1" `
--expect-runtime-lifecycle-field "unity-scene:release:releaseContract.requestBuilder:tools/eveunity/eveunity-release-contract.mjs" `
--expect-runtime-lifecycle-field "unity-scene:release:releaseContract.artifactBuilder:tools/eveunity/eveunity-release-artifact.mjs" `
--expect-runtime-lifecycle-field "unity-scene:release:releaseContract.artifactPattern:artifacts/eveunity-scene-release/{version}/org.gamecult.eve.unity-scene-{version}.tgz" `
--expect-runtime-lifecycle-field "unity-scene:release:releaseContract.requiredPackageDependencies.0.packageName:org.gamecult.eve.surface" `
--expect-runtime-lifecycle-field "unity-scene:release:releaseContract.requiredPackageDependencies.0.ownerRepo:Eve" `

View file

@ -51,6 +51,7 @@ try {
--expect-split-target-blocker-record EveUnity:runtime-status:unity-scene `
--expect-split-target-blocker-record "EveUnity:pending-proof:Unity scene runtime body graduates to EveUnity outside Aetheria product code." `
--expect-split-handoff-move EveUnity:unity-scene:unity-scene-runtime-body:current:exists:EveUnitySceneSurfaceLowerer.cs `
--expect-split-handoff-move EveUnity:unity-scene:unity-scene-upm-package:current:exists:eveunity-release-artifact.mjs `
--expect-split-handoff-move EveUnity:unity-scene:unity-scene-world-surface-lowering:current:exists:EveUnitySceneSurfaceLowerer.cs `
--expect-split-handoff-move EveUnity:unity-scene:unity-scene-sai-plugin-projection:current:exists:SaiVisualNovelUnitySceneProjectionAdapter.cs `
--expect-split-handoff-move EveUnity:unity-scene:unity-scene-norn-plugin-projection:current:exists:NornGraphUnitySceneProjectionAdapter.cs `