|
85 | 85 | cd packages/${{ github.event.inputs.package }} |
86 | 86 | pnpm run build:npm |
87 | 87 |
|
| 88 | + - name: Resolve workspace dependencies |
| 89 | + run: | |
| 90 | + cd packages/${{ github.event.inputs.package }}/dist |
| 91 | + # Replace workspace:* with actual versions from monorepo |
| 92 | + node -e " |
| 93 | + const fs = require('fs'); |
| 94 | + const path = require('path'); |
| 95 | + const pkg = JSON.parse(fs.readFileSync('package.json', 'utf8')); |
| 96 | +
|
| 97 | + const resolveWorkspaceDeps = (deps) => { |
| 98 | + if (!deps) return deps; |
| 99 | + const resolved = {}; |
| 100 | + for (const [name, version] of Object.entries(deps)) { |
| 101 | + if (version.startsWith('workspace:')) { |
| 102 | + // Get version from the actual package |
| 103 | + const pkgName = name.replace('@esengine/', ''); |
| 104 | + const pkgPath = path.join('..', '..', pkgName, 'package.json'); |
| 105 | + if (fs.existsSync(pkgPath)) { |
| 106 | + const depPkg = JSON.parse(fs.readFileSync(pkgPath, 'utf8')); |
| 107 | + resolved[name] = '^' + depPkg.version; |
| 108 | + } else { |
| 109 | + resolved[name] = version.replace('workspace:', ''); |
| 110 | + } |
| 111 | + } else { |
| 112 | + resolved[name] = version; |
| 113 | + } |
| 114 | + } |
| 115 | + return resolved; |
| 116 | + }; |
| 117 | +
|
| 118 | + pkg.dependencies = resolveWorkspaceDeps(pkg.dependencies); |
| 119 | + pkg.devDependencies = resolveWorkspaceDeps(pkg.devDependencies); |
| 120 | + pkg.peerDependencies = resolveWorkspaceDeps(pkg.peerDependencies); |
| 121 | +
|
| 122 | + fs.writeFileSync('package.json', JSON.stringify(pkg, null, 2) + '\n'); |
| 123 | + console.log('Resolved workspace dependencies'); |
| 124 | + " |
| 125 | +
|
88 | 126 | - name: Publish to npm |
89 | 127 | env: |
90 | 128 | NODE_AUTH_TOKEN: ${{ secrets.NPM_TOKEN }} |
|
0 commit comments