Skip to content

Commit f3b03d9

Browse files
authored
Improve Express deploy workflow with jq and better dependency flow (#709)
2 parents ecaa3ce + e5ce09f commit f3b03d9

File tree

1 file changed

+14
-10
lines changed

1 file changed

+14
-10
lines changed

.github/workflows/deploy-express.yml

Lines changed: 14 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -31,6 +31,9 @@ jobs:
3131

3232
- name: Install dependencies
3333
run: yarn install
34+
35+
- name: Install jq (for JSON manipulation)
36+
run: sudo apt-get update && sudo apt-get install -y jq
3437

3538
- name: Build workspace dependencies
3639
run: |
@@ -82,25 +85,26 @@ jobs:
8285
rsync -rl ./packages/db/package.json ${{ secrets.DO_USERNAME }}@eduquilt.com:/home/skuilder/dist/db/
8386
fi
8487
85-
# Replace workspace references with file paths
86-
TMP_PKG=$(cat ./packages/express/package.json | sed 's|"@vue-skuilder/common": "workspace:^"|"@vue-skuilder/common": "file:/home/skuilder/dist/common"|g' | sed 's|"@vue-skuilder/db": "workspace:^"|"@vue-skuilder/db": "file:/home/skuilder/dist/db"|g')
87-
echo "$TMP_PKG" > ./packages/express/temp-package.json
88+
# Create package.json with absolute paths instead of workspace references
89+
echo "Creating package.json with resolved dependency paths..."
90+
cat ./packages/express/package.json | jq '.dependencies["@vue-skuilder/common"] = "file:/home/skuilder/dist/common" | .dependencies["@vue-skuilder/db"] = "file:/home/skuilder/dist/db"' > ./packages/express/temp-package.json
91+
# Upload the modified package.json
8892
rsync -rl ./packages/express/temp-package.json ${{ secrets.DO_USERNAME }}@eduquilt.com:/home/skuilder/dist/express/${{github.sha}}/package.json
8993
90-
# Install dependencies on the server (using full path to yarn)
91-
echo "Installing dependencies for Express app..."
92-
ssh ${{ secrets.DO_USERNAME }}@eduquilt.com "cd /home/skuilder/dist/express/${{github.sha}} && source ~/.nvm/nvm.sh && NODE_ENV=production yarn install"
93-
94-
# Install dependencies for workspace packages
94+
# First install dependencies for common and db packages
9595
if [ -d "./packages/common" ]; then
9696
echo "Installing dependencies for common package..."
97-
ssh ${{ secrets.DO_USERNAME }}@eduquilt.com "cd /home/skuilder/dist/common && source ~/.nvm/nvm.sh && NODE_ENV=production yarn install"
97+
ssh ${{ secrets.DO_USERNAME }}@eduquilt.com "cd /home/skuilder/dist/common && source ~/.nvm/nvm.sh && NODE_ENV=production yarn install --no-immutable"
9898
fi
9999
100100
if [ -d "./packages/db" ]; then
101101
echo "Installing dependencies for db package..."
102-
ssh ${{ secrets.DO_USERNAME }}@eduquilt.com "cd /home/skuilder/dist/db && source ~/.nvm/nvm.sh && NODE_ENV=production yarn install"
102+
ssh ${{ secrets.DO_USERNAME }}@eduquilt.com "cd /home/skuilder/dist/db && source ~/.nvm/nvm.sh && NODE_ENV=production yarn install --no-immutable"
103103
fi
104+
105+
# Now install dependencies for express app
106+
echo "Installing dependencies for Express app..."
107+
ssh ${{ secrets.DO_USERNAME }}@eduquilt.com "cd /home/skuilder/dist/express/${{github.sha}} && source ~/.nvm/nvm.sh && NODE_ENV=production yarn install --no-immutable"
104108
105109
# Update symlink to new version
106110
ssh ${{ secrets.DO_USERNAME }}@eduquilt.com ln -sfn /home/skuilder/dist/express/${{github.SHA}} /home/skuilder/api

0 commit comments

Comments
 (0)