Skip to content

博客自动部署到云服务器

具体的做法是利用 github 的 actions 功能在提交到 master 分支的时候进行打包上传到云服务器:

yml
# 发布项目到自己的服务器上的配置
name: DeployServer
# on 表示触发actions的条件
on:
  push:
    branches: [master] # main分支在push的时候会触发

jobs:
  build:
    name: 部署到服务器上
    runs-on: ubuntu-latest # nodejs执行的操作系统
    steps:
      - name: 更新代码/获取源码
        uses: actions/checkout@master # 拉取你的最新代码
      - name: Use Node.js
        uses: actions/setup-node@v3
        with:
          node-version: '18' # 指定你的node版本
      - name: TranslateFile
        run: |
          npm install -g pnpm
          cd ./packages/blog
          pnpm i
          pnpm run build

      - name: 连接服务器
        # uses: wangyucode/sftp-upload-action@24f8bb83383dc39bed201ee5da01475e6c38c568
        uses: wangyucode/sftp-upload-action@v2.0.2
        with:
          host: ${{ secrets.SERVER_IP }} # 你的nginx服务器公网ip
          port: ${{ secrets.SERVER_PORT }} # 你的nginx服务器ssh端口
          username: ${{ secrets.USERNAME }} # 你的nginx服务器用户名
          password: ${{ secrets.PASSWORD }} # 你的nginx服务器密码
          localDir: packages/blog/docs/.vitepress/dist # 你vue项目build好的文件的路径,每次服务器上会自动删除对应的文件夹后重新覆盖
          remoteDir: ${{ secrets.SERVER_DESTINATION }} # 你要把你build好的文件夹放到nginx服务器上的什么位置,一般都是nginx配置的站点路径