Conversation
There was a problem hiding this comment.
Pull request overview
Updates the npm publish GitHub Actions workflow to publish each built package from dist/ explicitly, rather than discovering packages dynamically.
Changes:
- Replaced a
find-based loop that published packages from./distwith explicitnpm publishsteps per package directory. - Added
working-directoryper publish step to target specificdist/srcanddist/packages/*outputs.
💡 Add Copilot custom instructions for smarter, more guided reviews. Learn how to get started.
| - run: npm publish | ||
| working-directory: ./dist/src | ||
| - run: npm publish | ||
| working-directory: ./dist/packages/cache | ||
| - run: npm publish | ||
| working-directory: ./dist/packages/core |
There was a problem hiding this comment.
npm publish steps don't provide any auth (NODE_AUTH_TOKEN / npm token). With only setup-node and registry-url, publishes will fail unless the token is injected elsewhere. Consider setting NODE_AUTH_TOKEN: ${{ secrets.NPM_TOKEN }} (or equivalent) at the job or step level so all publish steps authenticate consistently.
| - run: npm publish | ||
| working-directory: ./dist/src | ||
| - run: npm publish | ||
| working-directory: ./dist/packages/cache |
There was a problem hiding this comment.
The workflow publishes ./dist/src first, but scripts/publish.js rewrites dist/src/package.json to depend on the @next2d/* packages (published later). This can create a window where the newly published @next2d/player version cannot be installed because its dependencies at the same version aren't available yet. Publish the dependency packages first and ./dist/src last (or use a staging tag and promote after all packages are published).
| - run: npm publish | ||
| working-directory: ./dist/src | ||
| - run: npm publish | ||
| working-directory: ./dist/packages/cache | ||
| - run: npm publish | ||
| working-directory: ./dist/packages/core | ||
| - run: npm publish | ||
| working-directory: ./dist/packages/display | ||
| - run: npm publish | ||
| working-directory: ./dist/packages/events | ||
| - run: npm publish | ||
| working-directory: ./dist/packages/filters | ||
| - run: npm publish | ||
| working-directory: ./dist/packages/geom | ||
| - run: npm publish | ||
| working-directory: ./dist/packages/media | ||
| - run: npm publish | ||
| working-directory: ./dist/packages/net | ||
| - run: npm publish | ||
| working-directory: ./dist/packages/render-queue | ||
| - run: npm publish | ||
| working-directory: ./dist/packages/renderer | ||
| - run: npm publish | ||
| working-directory: ./dist/packages/text | ||
| - run: npm publish | ||
| working-directory: ./dist/packages/texture-packer | ||
| - run: npm publish | ||
| working-directory: ./dist/packages/ui | ||
| - run: npm publish | ||
| working-directory: ./dist/packages/webgl | ||
| - run: npm publish | ||
| working-directory: ./dist/packages/webgpu |
There was a problem hiding this comment.
This hard-coded list of npm publish directories will require manual updates whenever packages are added/removed/renamed. The previous approach was dynamic; consider replacing the repeated steps with a small shell loop over ./dist/src and ./dist/packages/* (optionally in a dependency-safe order) to reduce drift and maintenance burden.
| - run: npm publish | |
| working-directory: ./dist/src | |
| - run: npm publish | |
| working-directory: ./dist/packages/cache | |
| - run: npm publish | |
| working-directory: ./dist/packages/core | |
| - run: npm publish | |
| working-directory: ./dist/packages/display | |
| - run: npm publish | |
| working-directory: ./dist/packages/events | |
| - run: npm publish | |
| working-directory: ./dist/packages/filters | |
| - run: npm publish | |
| working-directory: ./dist/packages/geom | |
| - run: npm publish | |
| working-directory: ./dist/packages/media | |
| - run: npm publish | |
| working-directory: ./dist/packages/net | |
| - run: npm publish | |
| working-directory: ./dist/packages/render-queue | |
| - run: npm publish | |
| working-directory: ./dist/packages/renderer | |
| - run: npm publish | |
| working-directory: ./dist/packages/text | |
| - run: npm publish | |
| working-directory: ./dist/packages/texture-packer | |
| - run: npm publish | |
| working-directory: ./dist/packages/ui | |
| - run: npm publish | |
| working-directory: ./dist/packages/webgl | |
| - run: npm publish | |
| working-directory: ./dist/packages/webgpu | |
| - run: | | |
| set -e | |
| # Publish core source package first | |
| if [ -f "./dist/src/package.json" ]; then | |
| (cd ./dist/src && npm publish) | |
| fi | |
| # Publish all built packages dynamically | |
| for dir in ./dist/packages/*; do | |
| if [ -d "$dir" ] && [ -f "$dir/package.json" ]; then | |
| (cd "$dir" && npm publish) | |
| fi | |
| done |
No description provided.