通过 GitHub Actions 自动部署 vuepresss 项目到云服务器

GitHub Actions介绍

Actions 简单理解就是完成你自定义的工作流,如项目的打包,测试,发布,部署等。并且含有官方提供的一些了模板脚本文件,只需修改其中的关键位置就能,实现一些列功能。

workflow (工作流),job(任务),step(步骤),action (动作)

详细内容参考大佬博客:http://www.ruanyifeng.com/blog/2019/09/getting-started-with-github-actions.html

通过 GitHub Actions 自动部署 vuepresss 项目到云服务器_第1张图片

添加服务器工具 rsync

在服务器端安装 rsync 工具;作用:rsync的目的是实现本地主机和远程主机上的文件同步(包括本地推到远程,远程拉到本地两种同步方式)。

yum install rsync
#or
npm install reync

通过 GitHub Actions 自动部署 vuepresss 项目到云服务器_第2张图片

配置ssh秘钥并配置

生成ssh秘钥,前提是服务器上安装 Git 。

ssh-keygen -t rsa -C "[email protected]"

#or ssh-keygen -o

通过 GitHub Actions 自动部署 vuepresss 项目到云服务器_第3张图片

配置私钥

在项目所在的仓库中配置私钥: Settings->Secrets->New secret

通过 GitHub Actions 自动部署 vuepresss 项目到云服务器_第4张图片通过 GitHub Actions 自动部署 vuepresss 项目到云服务器_第5张图片

配置公钥

将公钥 id_rsa.pub 的内容复制进入同级文件 authorized_keys 里面 。

生成并配置yml文件

actions->set up a workflow yourself
通过 GitHub Actions 自动部署 vuepresss 项目到云服务器_第6张图片
workflow具体配置

在这里发发牢骚,配置这个文件用了我一天的时间,难受

name: Deploy My Server

on:
  push:
    branches:
      - main # 只在master上push触发部署
      
jobs:
  deploy:
    runs-on: ubuntu-latest # 使用ubuntu系统镜像运行自动化脚本

    steps: # 自动化步骤
    
      #下载代码仓库
      - uses: actions/checkout@v1 
      
      # 使用action库,安装node
      - name: use Node.js  # 使用action库  actions/setup-node安装node
        uses: actions/setup-node@v1
       
      # 安装依赖
      - name: npm install 
        run: npm install 
      
      #打包项目
      - name: Build
        run: npm run build 

      #部署到服务器
      - name: Deploy to Staging My server
        uses: easingthemes/ssh-[email protected]
        env:
          #私钥
          SSH_PRIVATE_KEY: ${{ secrets.MY_SERVER_PRIVATE_KEY }} #后面指定为该仓库配置的私钥
          ARGS: "-rltgoDzvO"
          # 源目录,编译后生成的文件目录
          SOURCE: '/public/'
          #服务器公网地址
          REMOTE_HOST: '服务器公网地址'
          #服务器用户名-一般默认root
          REMOTE_USER: 'root'
          #服务器中,代码部署的位置
          TARGET: '/www/wwwroot/MyBolg/'
          #去除的文件
          EXCLUDE: "/dist/, /node_modules/" 

通过 GitHub Actions 自动部署 vuepresss 项目到云服务器_第7张图片
进入服务器查看是否文件上传成功
通过 GitHub Actions 自动部署 vuepresss 项目到云服务器_第8张图片

你可能感兴趣的:(博客,服务器,github,ssh)