4646 - name : Build Express backend
4747 run : yarn workspace @vue-skuilder/express build
4848
49+ - name : Prepare package.json for deployment
50+ working-directory : ./packages/express
51+ run : |
52+ # Create a deployment package.json with file: references for workspace deps
53+ cat package.json | node -e "
54+ const pkg = JSON.parse(require('fs').readFileSync(0, 'utf-8'));
55+ pkg.dependencies['@vue-skuilder/common'] = 'file:./workspace/common';
56+ pkg.dependencies['@vue-skuilder/db'] = 'file:./workspace/db';
57+ console.log(JSON.stringify(pkg, null, 2));
58+ " > package.json.deploy
59+
60+ - name : Install production dependencies
61+ working-directory : ./packages/express
62+ run : |
63+ # Temporarily use the modified package.json
64+ mv package.json package.json.orig
65+ mv package.json.deploy package.json
66+ NODE_ENV=production yarn install
67+ # Restore original
68+ mv package.json.orig package.json
69+
4970 - name : Create build info
5071 run : |
5172 BUILD_INFO="Build created on $(date) from commit ${{ github.sha }}\n"
6283
6384 echo "Syncing Express package..."
6485 rsync -rl --delete ./packages/express/dist/ ${{ secrets.DO_USERNAME }}@eduquilt.com:/home/skuilder/dist/express-backend/$newversion/dist
65- rsync -rl ./packages/express/package.json ${{ secrets.DO_USERNAME }}@eduquilt.com:/home/skuilder/dist/express-backend/$newversion/
86+ rsync -rl ./packages/express/package.json.deploy ${{ secrets.DO_USERNAME }}@eduquilt.com:/home/skuilder/dist/express-backend/$newversion/package.json
87+ rsync -rl ./packages/express/node_modules/ ${{ secrets.DO_USERNAME }}@eduquilt.com:/home/skuilder/dist/express-backend/$newversion/node_modules
6688 rsync -rl ./packages/express/assets/ ${{ secrets.DO_USERNAME }}@eduquilt.com:/home/skuilder/dist/express-backend/$newversion/assets
6789 rsync -rl ./packages/express/.env.production ${{ secrets.DO_USERNAME }}@eduquilt.com:/home/skuilder/dist/express-backend/$newversion/.env.production
6890
@@ -78,14 +100,6 @@ jobs:
78100 rsync -rl --delete ./packages/db/dist/ ${{ secrets.DO_USERNAME }}@eduquilt.com:/home/skuilder/dist/express-backend/$newversion/workspace/db/dist
79101 rsync -rl ./packages/db/package.json ${{ secrets.DO_USERNAME }}@eduquilt.com:/home/skuilder/dist/express-backend/$newversion/workspace/db/
80102
81- # Create a modified package.json with file: references for workspace deps
82- echo "Creating package.json with resolved workspace paths..."
83- ssh ${{ secrets.DO_USERNAME }}@eduquilt.com "cd /home/skuilder/dist/express-backend/$newversion && cat package.json | jq '.dependencies[\"@vue-skuilder/common\"] = \"file:./workspace/common\" | .dependencies[\"@vue-skuilder/db\"] = \"file:./workspace/db\"' > package.json.tmp && mv package.json.tmp package.json"
84-
85- # Install express package dependencies (this will also link the workspace packages)
86- echo "Installing production dependencies on server..."
87- ssh ${{ secrets.DO_USERNAME }}@eduquilt.com "cd /home/skuilder/dist/express-backend/$newversion && source ~/.nvm/nvm.sh && NODE_ENV=production yarn install --immutable"
88-
89103 echo "Setting symlink to new version..."
90104 ssh ${{ secrets.DO_USERNAME }}@eduquilt.com ln -sfn /home/skuilder/dist/express-backend/$newversion /home/skuilder/express-backend
91105 echo "Deployment complete to version $newversion"
0 commit comments