File tree Expand file tree Collapse file tree
Expand file tree Collapse file tree Original file line number Diff line number Diff line change 1+ name : Frontend Deploy
2+
3+ on :
4+ push :
5+ branches :
6+ - main
7+ - dev
8+
9+ jobs :
10+ deploy :
11+ runs-on : ubuntu-latest
12+
13+ steps :
14+ - name : Checkout
15+ uses : actions/checkout@v4
16+
17+ - name : Setup Node
18+ uses : actions/setup-node@v4
19+ with :
20+ node-version : 22
21+ cache : pnpm
22+
23+ - name : Setup pnpm
24+ uses : pnpm/action-setup@v4
25+ with :
26+ version : 9
27+
28+ - name : Install dependencies
29+ run : pnpm install --frozen-lockfile
30+
31+ - name : Build
32+ run : pnpm build
33+
34+ - name : Set deploy target
35+ id : vars
36+ run : |
37+ if [ "${GITHUB_REF_NAME}" = "main" ]; then
38+ echo "REMOTE_TEMP_DIR=/home/ubuntu/deploy/wefin-fe-prod" >> $GITHUB_OUTPUT
39+ echo "REMOTE_TARGET_DIR=/var/www/wefin-fe" >> $GITHUB_OUTPUT
40+ else
41+ echo "REMOTE_TEMP_DIR=/home/ubuntu/deploy/wefin-fe-dev" >> $GITHUB_OUTPUT
42+ echo "REMOTE_TARGET_DIR=/var/www/wefin-fe-dev" >> $GITHUB_OUTPUT
43+ fi
44+
45+ - name : Create SSH key
46+ run : |
47+ echo "${{ secrets.EC2_SSH_KEY }}" > private_key.pem
48+ chmod 600 private_key.pem
49+
50+ - name : Ensure remote temp directory exists
51+ run : |
52+ ssh -i private_key.pem -o StrictHostKeyChecking=no ${{ secrets.EC2_USER }}@${{ secrets.EC2_HOST }} \
53+ "mkdir -p ${{ steps.vars.outputs.REMOTE_TEMP_DIR }}"
54+
55+ - name : Upload dist to EC2
56+ run : |
57+ scp -i private_key.pem -o StrictHostKeyChecking=no -r dist/* \
58+ ${{ secrets.EC2_USER }}@${{ secrets.EC2_HOST }}:${{ steps.vars.outputs.REMOTE_TEMP_DIR }}/
59+
60+ - name : Deploy on EC2
61+ run : |
62+ ssh -i private_key.pem -o StrictHostKeyChecking=no ${{ secrets.EC2_USER }}@${{ secrets.EC2_HOST }} << 'EOF'
63+ TARGET_DIR="${{ steps.vars.outputs.REMOTE_TARGET_DIR }}"
64+ TEMP_DIR="${{ steps.vars.outputs.REMOTE_TEMP_DIR }}"
65+
66+ rm -rf "${TARGET_DIR:?}"/*
67+ mkdir -p "$TARGET_DIR"
68+ cp -r "$TEMP_DIR"/* "$TARGET_DIR"/
69+ EOF
You can’t perform that action at this time.
0 commit comments