Skip to content

Merge branch 'dev'

Merge branch 'dev' #46

Workflow file for this run

name: Deploy to Aliyun
on:
push:
branches:
- main # 推送到主分支时触发该工作流
jobs:
build-and-deploy:
runs-on: ubuntu-latest
steps:
- name: Checkout code
uses: actions/checkout@v2
- name: Setup Node.js
uses: actions/setup-node@v2
with:
node-version: '22'
- name: Install dependencies
run: yarn
- name: Build project
run: yarn build:prod
- name: Add known hosts
run: |
mkdir -p ~/.ssh
ssh-keyscan -H ${{ secrets.ALIYUN_HOST }} >> ~/.ssh/known_hosts
- name: Deploy to server
env:
HOST: ${{ secrets.ALIYUN_HOST }}
USERNAME: ${{ secrets.ALIYUN_USERNAME }}
PRIVATE_KEY: ${{ secrets.ALIYUN_PRIVATE_KEY }}
run: |
echo "${{ secrets.ALIYUN_PRIVATE_KEY }}" | tr -d '\r' > private_key.pem
chmod 600 private_key.pem
# 清空目标目录
ssh -i private_key.pem $USERNAME@$HOST "rm -rf /work/nexus/*"
# 压缩并上传 当使用 -C dist 时,这里 -C dist . 表示只压缩 dist 文件夹内部的文件,并没有外层 dist 目录
# tar -zcvf dist.tar.gz -C dist . 表示压缩 dist 文件夹内部的文件,并没有外层 dist 目录
tar -zcvf dist.tar.gz dist
scp -i private_key.pem -C -r dist.tar.gz $USERNAME@$HOST:/work/nexus
# 解压并替换目标目录 --strip-components=1 表示解压后删除第一层目录(dist)
ssh -i private_key.pem $USERNAME@$HOST "tar -zxvf /work/nexus/dist.tar.gz --strip-components=1 -C /work/nexus"
ssh -i private_key.pem $USERNAME@$HOST "rm -rf /work/nexus/dist.tar.gz"
ssh -i private_key.pem $USERNAME@$HOST "sudo systemctl reload nginx"
rm private_key.pem