Public Access
feat(cli): theme_vars_check manifest completeness + fileset integrity
Universal: Build & Release / Promote to RC (pull_request) Has been skipped
Universal: Build & Release / Build & Release Pipeline (pull_request) Failing after 4s
Universal: PR Check / Branch Policy (pull_request) Failing after 2s
Generic: Repo Health / Site Health (pull_request) Has been skipped
Generic: Repo Health / Access control (pull_request) Successful in 2s
RC Revert / Rename rc/ back to dev/ (pull_request) Has been skipped
Branch Cleanup / Delete merged branch (pull_request) Failing after 2s
Universal: PR Check / Validate PR (pull_request) Failing after 10s
Universal: PR Check / Secret Scan (pull_request) Successful in 21s
Generic: Project CI / Lint & Validate (pull_request) Successful in 30s
Platform: mokocli CI / Gate 1: Code Quality (pull_request) Failing after 1m12s
Universal: Workflow Sync Trigger / Sync workflows to live repos (pull_request) Successful in 4m36s
Generic: Project CI / Tests (pull_request) Has been cancelled
Platform: mokocli CI / Gate 2: Unit Tests (8.1) (pull_request) Has been cancelled
Platform: mokocli CI / Gate 2: Unit Tests (8.2) (pull_request) Has been cancelled
Platform: mokocli CI / Gate 2: Unit Tests (8.3) (pull_request) Has been cancelled
Platform: mokocli CI / Gate 3: Self-Health Check (pull_request) Has been cancelled
Platform: mokocli CI / Gate 4: Governance (pull_request) Has been cancelled
Platform: mokocli CI / Gate 5: Template Integrity (pull_request) Has been cancelled
Platform: mokocli CI / CI Summary (pull_request) Has been cancelled
Universal: PR Check / Build RC Package (pull_request) Has been cancelled
Universal: PR Check / Report Issues (pull_request) Has been cancelled
Generic: Repo Health / Scripts governance (pull_request) Has been cancelled
Generic: Repo Health / Repository health (pull_request) Has been cancelled
Generic: Repo Health / Report: Scripts Governance (pull_request) Has been cancelled
Generic: Repo Health / Report: Repository Health (pull_request) Has been cancelled
Universal: Build & Release / Promote to RC (pull_request) Has been skipped
Universal: Build & Release / Build & Release Pipeline (pull_request) Failing after 4s
Universal: PR Check / Branch Policy (pull_request) Failing after 2s
Generic: Repo Health / Site Health (pull_request) Has been skipped
Generic: Repo Health / Access control (pull_request) Successful in 2s
RC Revert / Rename rc/ back to dev/ (pull_request) Has been skipped
Branch Cleanup / Delete merged branch (pull_request) Failing after 2s
Universal: PR Check / Validate PR (pull_request) Failing after 10s
Universal: PR Check / Secret Scan (pull_request) Successful in 21s
Generic: Project CI / Lint & Validate (pull_request) Successful in 30s
Platform: mokocli CI / Gate 1: Code Quality (pull_request) Failing after 1m12s
Universal: Workflow Sync Trigger / Sync workflows to live repos (pull_request) Successful in 4m36s
Generic: Project CI / Tests (pull_request) Has been cancelled
Platform: mokocli CI / Gate 2: Unit Tests (8.1) (pull_request) Has been cancelled
Platform: mokocli CI / Gate 2: Unit Tests (8.2) (pull_request) Has been cancelled
Platform: mokocli CI / Gate 2: Unit Tests (8.3) (pull_request) Has been cancelled
Platform: mokocli CI / Gate 3: Self-Health Check (pull_request) Has been cancelled
Platform: mokocli CI / Gate 4: Governance (pull_request) Has been cancelled
Platform: mokocli CI / Gate 5: Template Integrity (pull_request) Has been cancelled
Platform: mokocli CI / CI Summary (pull_request) Has been cancelled
Universal: PR Check / Build RC Package (pull_request) Has been cancelled
Universal: PR Check / Report Issues (pull_request) Has been cancelled
Generic: Repo Health / Scripts governance (pull_request) Has been cancelled
Generic: Repo Health / Repository health (pull_request) Has been cancelled
Generic: Repo Health / Report: Scripts Governance (pull_request) Has been cancelled
Generic: Repo Health / Report: Repository Health (pull_request) Has been cancelled
- Verify required manifest fields: <name>, <element>, <author>, <creationDate>. - Verify <scriptfile> target exists in src/. - Fileset integrity: every <filename>/<folder> in <fileset> must exist in src/ — catches the "Failed to find source folder" install failure class at CI time. Authored-by: Moko Consulting
This commit is contained in:
@@ -137,6 +137,45 @@ if (is_file($manifest)) {
|
||||
|
||||
isset($xml->dlid) ? $ok('<dlid> license-key field present')
|
||||
: $fail('<dlid prefix="dlid=" suffix=""/> is missing');
|
||||
|
||||
// Required manifest fields
|
||||
foreach (['name', 'element', 'author', 'creationDate'] as $field) {
|
||||
(isset($xml->$field) && trim((string) $xml->$field) !== '')
|
||||
? $ok("<$field> present")
|
||||
: $fail("<$field> is missing or empty");
|
||||
}
|
||||
|
||||
// scriptfile (if declared) must exist
|
||||
if (isset($xml->scriptfile)) {
|
||||
$sf = trim((string) $xml->scriptfile);
|
||||
is_file("$src/$sf") ? $ok("scriptfile '$sf' present")
|
||||
: $fail("<scriptfile> references '$sf' which is not in src/");
|
||||
}
|
||||
|
||||
// Fileset integrity — every referenced file/folder must exist in src/
|
||||
if (isset($xml->fileset)) {
|
||||
$missingFs = [];
|
||||
foreach ($xml->fileset->files as $files) {
|
||||
$folder = trim((string) ($files['folder'] ?? ''));
|
||||
$baseDir = $folder !== '' ? "$src/$folder" : $src;
|
||||
foreach ($files->filename as $fn) {
|
||||
$rel = ($folder !== '' ? "$folder/" : '') . trim((string) $fn);
|
||||
if (!is_file("$baseDir/" . trim((string) $fn))) { $missingFs[] = $rel; }
|
||||
}
|
||||
foreach ($files->folder as $fd) {
|
||||
$rel = ($folder !== '' ? "$folder/" : '') . trim((string) $fd) . '/';
|
||||
if (!is_dir("$baseDir/" . trim((string) $fd))) { $missingFs[] = $rel; }
|
||||
}
|
||||
}
|
||||
if ($missingFs) {
|
||||
$shown = array_slice($missingFs, 0, 10);
|
||||
$more = count($missingFs) - count($shown);
|
||||
$fail('fileset references ' . count($missingFs) . ' missing path(s): '
|
||||
. implode(', ', $shown) . ($more > 0 ? " (+$more more)" : ''));
|
||||
} else {
|
||||
$ok('all fileset paths exist in src/');
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
Reference in New Issue
Block a user