Make Eve artifact onboarding one command
This commit is contained in:
parent
913ed627c6
commit
d2a7693611
4 changed files with 33 additions and 12 deletions
|
|
@ -12,12 +12,12 @@ Eve. It intentionally has one owner for each decision:
|
|||
Run it from the CultLib repository:
|
||||
|
||||
```powershell
|
||||
powershell -ExecutionPolicy Bypass -File .\scripts\verify-eve-two-runtime-sample.ps1 `
|
||||
-EveRoot ..\Eve
|
||||
pwsh -File ./scripts/verify-eve-two-runtime-sample.ps1 -EveRoot ../Eve
|
||||
```
|
||||
|
||||
The verifier builds package artifacts, installs them into a new empty temporary
|
||||
consumer, and runs `sample.mjs`. Success proves:
|
||||
From clean CultLib and Eve checkouts, the verifier installs missing build
|
||||
dependencies, builds package artifacts, installs them into a new empty
|
||||
temporary consumer, and runs `sample.mjs`. Success proves:
|
||||
|
||||
1. no source-tree import is required by the consumer;
|
||||
2. the provider surface and receipt pass Eve's generated runtime validators;
|
||||
|
|
|
|||
|
|
@ -1,5 +1,6 @@
|
|||
param(
|
||||
[string] $EveRoot = (Join-Path (Split-Path -Parent $PSScriptRoot) "..\Eve")
|
||||
[string] $EveRoot = (Join-Path (Split-Path -Parent $PSScriptRoot) "..\Eve"),
|
||||
[switch] $SkipDependencyInstall
|
||||
)
|
||||
|
||||
$ErrorActionPreference = "Stop"
|
||||
|
|
@ -53,6 +54,26 @@ foreach ($packageRoot in $packageRoots) {
|
|||
}
|
||||
}
|
||||
|
||||
if (-not $SkipDependencyInstall) {
|
||||
$dependencyRoots = @($cultLibRoot, $eveContractsPackage, $eveBrowserPackage)
|
||||
foreach ($dependencyRoot in $dependencyRoots) {
|
||||
$typescript = Join-Path $dependencyRoot "node_modules\typescript\bin\tsc"
|
||||
if (Test-Path -LiteralPath $typescript -PathType Leaf) {
|
||||
continue
|
||||
}
|
||||
Push-Location $dependencyRoot
|
||||
try {
|
||||
& $npmPath ci --no-audit --no-fund
|
||||
if ($LASTEXITCODE -ne 0) {
|
||||
throw "Dependency installation failed: $dependencyRoot"
|
||||
}
|
||||
}
|
||||
finally {
|
||||
Pop-Location
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
$tempBase = [IO.Path]::GetFullPath([IO.Path]::GetTempPath())
|
||||
$workRoot = Join-Path $tempBase ("gamecult-eve-two-runtime-" + [guid]::NewGuid().ToString("N"))
|
||||
$artifactRoot = Join-Path $workRoot "artifacts"
|
||||
|
|
|
|||
|
|
@ -39,8 +39,7 @@ The package-artifact DOM-lowerer/headless checkpoint is executable from CultLib:
|
|||
|
||||
```powershell
|
||||
cd CultLib
|
||||
powershell -ExecutionPolicy Bypass -File .\scripts\verify-eve-two-runtime-sample.ps1 `
|
||||
-EveRoot ..\Eve
|
||||
pwsh -File ./scripts/verify-eve-two-runtime-sample.ps1 -EveRoot ../Eve
|
||||
```
|
||||
|
||||
The verifier builds and packs `cultcache-ts`, `cultnet-ts`, `cultmesh-ts`,
|
||||
|
|
@ -57,8 +56,8 @@ survive reopening the `.cc` store.
|
|||
Current verification for the Unity consumer remains:
|
||||
|
||||
```powershell
|
||||
cd E:\Projects\EveUnity
|
||||
powershell -ExecutionPolicy Bypass -File .\scripts\run-release-consumer-tests.ps1
|
||||
cd ../EveUnity
|
||||
pwsh -File ./scripts/run-release-consumer-tests.ps1
|
||||
```
|
||||
|
||||
This first checkpoint proves clean package consumption, canonical Eve contract
|
||||
|
|
|
|||
|
|
@ -7,11 +7,12 @@ APIs, name the owner of each decision, and include a verification checkpoint.
|
|||
Run the current clean-consumer checkpoint first:
|
||||
|
||||
```powershell
|
||||
powershell -ExecutionPolicy Bypass -File .\scripts\verify-eve-two-runtime-sample.ps1 `
|
||||
-EveRoot ..\Eve
|
||||
pwsh -File ./scripts/verify-eve-two-runtime-sample.ps1 -EveRoot ../Eve
|
||||
```
|
||||
|
||||
It installs packed artifacts into an empty temporary project, validates the Eve
|
||||
From clean CultLib and Eve checkouts, the command installs the package build
|
||||
dependencies when absent, packs the five TypeScript packages, installs only
|
||||
those artifacts into an empty temporary project, validates the Eve
|
||||
surface and receipt, executes one idempotent counter command, proves two local
|
||||
consumers converge, and reopens the durable `.cc` store. It is deliberately not
|
||||
called a networked-browser proof; chapter 3 names that remaining boundary.
|
||||
|
|
|
|||
Loading…
Reference in a new issue