mirror of
https://github.com/game-ci/unity-builder.git
synced 2026-09-29 12:07:05 -07:00
Supersedes the previous approach on this branch, which imported @game-ci/unity-engine-core as an in-process library. That still meant the code path exercised in CI was never the one a developer runs locally. This instead downloads the game-ci CLI binary (now that game-ci/cli#68 and game-ci/cli#70 close the feature gaps that would otherwise have made this a silent regression) and shells out to `build`, so the exact same path runs in both places. - build-args.ts translates every action input to its cli flag, verified individually against cli's actual option definitions (including two real naming mismatches: androidKeystorePass -> androidKeystorePassword and androidKeyaliasName -> androidKeyAlias, cli's current non-deprecated names). - download-cli.ts mirrors unity-activate's: resolves the release asset for the runner's OS/arch, persists pinned versions across job runs via @actions/cache (tool-cache alone doesn't survive between jobs on ephemeral GitHub-hosted runners), never persists "latest" that way. - Credentials (UNITY_EMAIL etc.) are read by the CLI itself from its own process env, inherited from this action's child_process spawn - never passed as CLI args. - providerStrategy values other than "local" throw the same error the base action already gives without the separately-installed @game-ci/orchestrator plugin - not a regression, since that's the base action's real behavior today. - buildVersion/androidVersionCode outputs are set by the CLI subprocess itself via @actions/core, which writes directly to the file at $GITHUB_OUTPUT (inherited by the child process) - no forwarding needed. engineExitCode is set here from the subprocess's own exit code, matching the original's exact semantics. `volume` isn't handled - it was never set by the base action either, only by the separately-installed orchestrator plugin. - action.yml gains a `cliVersion` input (default "latest"). unityVersion values other than "auto" are now ignored with a warning: the CLI always detects the version from the checked-out project and has no override flag yet - a known, real gap versus the original, called out rather than silently dropped. - Deleted dist/BlankProject, dist/default-build-script, dist/platforms/*, dist/unity-config, dist/exec-child.js: all dead under the new structure. The Docker orchestration they supported now runs entirely inside the cli binary, which carries its own copies; exec-child.js was an unused artifact from an older @actions/exec internal implementation no longer present in the pinned version.
68 lines
1.9 KiB
JSON
68 lines
1.9 KiB
JSON
{
|
|
"name": "unity-builder",
|
|
"version": "3.0.0",
|
|
"description": "Build Unity projects for different platforms.",
|
|
"main": "dist/index.js",
|
|
"repository": "[email protected]:game-ci/unity-builder.git",
|
|
"author": "Webber <[email protected]>",
|
|
"license": "MIT",
|
|
"scripts": {
|
|
"prepare": "husky",
|
|
"build": "yarn && tsc && ncc build lib --source-map --license licenses.txt",
|
|
"test": "node scripts/ensure-husky.mjs && vitest run",
|
|
"test:watch": "vitest",
|
|
"test:ci": "vitest run",
|
|
"coverage": "vitest run --coverage",
|
|
"lint": "yarn oxlint --report-unused-disable-directives",
|
|
"format": "oxfmt --write",
|
|
"format:check": "oxfmt --check",
|
|
"typecheck": "tsc --noEmit",
|
|
"typecheck:tsgo": "tsgo --noEmit",
|
|
"setup:hooks": "node scripts/ensure-husky.mjs"
|
|
},
|
|
"lint-staged": {
|
|
"*.@(ts|tsx|mts|js|jsx|mjs|cjs)": [
|
|
"oxlint --fix --quiet",
|
|
"oxfmt --write"
|
|
],
|
|
"*.@(json|jsonc|json5|md|mdx|yaml|yml|css|scss|sass|html|toml)": "oxfmt --write",
|
|
".github/workflows/*.@(yml|yaml)": "actionlint"
|
|
},
|
|
"engines": {
|
|
"node": ">=18.x"
|
|
},
|
|
"dependencies": {
|
|
"@actions/cache": "^3.2.4",
|
|
"@actions/core": "^1.11.1",
|
|
"@actions/exec": "^1.1.1",
|
|
"@actions/tool-cache": "^2.0.1"
|
|
},
|
|
"devDependencies": {
|
|
"@types/node": "^17.0.23",
|
|
"@types/semver": "^7.3.9",
|
|
"@typescript/native-preview": "^7.0.0-dev.20260505.1",
|
|
"@vercel/ncc": "^0.36.1",
|
|
"@vitest/coverage-istanbul": "^4.1.5",
|
|
"cross-env": "^7.0.3",
|
|
"eslint": "^10.3.0",
|
|
"eslint-plugin-unicorn": "^64.0.0",
|
|
"husky": "9",
|
|
"js-yaml": "^4.1.0",
|
|
"lint-staged": "^16.4.0",
|
|
"node-fetch": "2",
|
|
"oxfmt": "^0.48.0",
|
|
"oxlint": "^1.63.0",
|
|
"ts-node": "10.8.1",
|
|
"typescript": "4.7.4",
|
|
"vite": "^7",
|
|
"vitest": "^4",
|
|
"yarn-audit-fix": "^9.3.8"
|
|
},
|
|
"packageManager": "[email protected]",
|
|
"dependenciesMeta": {
|
|
"lefthook": {
|
|
"built": true
|
|
}
|
|
}
|
|
}
|