29 lines
1.2 KiB
JavaScript
29 lines
1.2 KiB
JavaScript
import fs from 'node:fs'
|
|
import path from 'node:path'
|
|
import { fileURLToPath } from 'node:url'
|
|
|
|
import { validateAssetBuildManifest } from './asset-build-manifest.mjs'
|
|
import { resolvePythonExecutable, runPythonCommand } from './python-runtime.mjs'
|
|
|
|
const scriptDirectory = path.dirname(fileURLToPath(import.meta.url))
|
|
const pipelineDirectory = path.resolve(scriptDirectory, '..')
|
|
const workspace = path.resolve(pipelineDirectory, '..')
|
|
const manifestPath = path.join(pipelineDirectory, 'manifests', 'shared-scroll-skins-v3.json')
|
|
const reportPath = path.join(pipelineDirectory, 'generated', 'shared-scroll-skins-v3', 'quality-report.json')
|
|
const python = resolvePythonExecutable({ pipelineDirectory })
|
|
const manifest = JSON.parse(fs.readFileSync(manifestPath, 'utf8'))
|
|
|
|
validateAssetBuildManifest(manifest, workspace)
|
|
|
|
// Node 只负责编排锁定的清单和 Python 工具;像素处理与质量分析各自只有一个实现。
|
|
function run(script, args) {
|
|
runPythonCommand({
|
|
executable: python,
|
|
args: [path.join(scriptDirectory, script), ...args],
|
|
cwd: workspace,
|
|
})
|
|
}
|
|
|
|
run('build_scroll_skins.py', [manifestPath, '--workspace', workspace])
|
|
run('verify-assets.py', [manifestPath, '--workspace', workspace, '--report', reportPath])
|