diff --git a/.drone.yml b/.drone.yml index 7d57951..f1471b6 100644 --- a/.drone.yml +++ b/.drone.yml @@ -27,6 +27,27 @@ steps: - cd cbt-ui - apk add --no-cache expect - corepack enable + - | + node <<'NODE' + const fs = require('fs') + const packageJson = JSON.parse(fs.readFileSync('package.json', 'utf8')) + const allowed = packageJson.pnpm?.onlyBuiltDependencies + const workspacePath = 'pnpm-workspace.yaml' + const workspace = fs.readFileSync(workspacePath, 'utf8') + + if (!Array.isArray(allowed) || allowed.length === 0) { + throw new Error('package.json does not define pnpm.onlyBuiltDependencies') + } + if (!/^onlyBuiltDependencies\s*:/m.test(workspace)) { + const setting = [ + '', + 'onlyBuiltDependencies:', + ...allowed.map((name) => ` - ${JSON.stringify(name)}`), + '', + ].join('\n') + fs.appendFileSync(workspacePath, setting) + } + NODE - pnpm config set store-dir /cache/cbt-ui/pnpm-store - sh install.sh - pnpm build