你知道怎么使用Github中Actions自动化部署线上项目吗?

252 阅读2分钟

要求

  • 项目必须使用GitHub进行项目版本控制
  • 为了更好的执行上传命令,项目部署的服务器必须是linux系统(win系统中有些命令无权限运行)

项目步骤

准备algolia文件

根目录中创建文件夹.github\workflows\algolia.yml

name: Deploy Frontend to Server

on:
  push:
    branches: [ master ]

jobs:
  deploy:
    runs-on: ubuntu-latest
    steps:
      - uses: actions/checkout@v3
      
      - name: Install Dependencies
        run: |
          sudo apt-get update && \
          sudo apt-get install -y sshpass && \
          npm install

      - name: Build Project
        run: |
          npm run build

      - name: Deploy
        uses: easingthemes/ssh-deploy@v2.2.1
        with:
          ssh_private_key: ${{ secrets.SSH_PRIVATE_KEY }} # 需要Github填充
          remote_host: ${{ secrets.DEPLOY_HOST }}
          remote_user: ${{ secrets.DEPLOY_USERNAME }}
          args: -rltgoDzvO --delete
          source: "dist/" # 将部署的路径特别标注出来
          target: "/root/test" # 远程服务器目标路

创建该文件夹后,项目一但上传(git push)到Github,就会立即在Actions中执行run,将dist中文件替换到/root/test中。

部署服务器步骤

安装git

Git官网传送门

生成密钥

  • 右击目录空白处,打开Git Bash Here
  • 输入命令生成
ssh-keygen -t rsa
  • 根据指令回车

    • 回车生成密钥文件
    • 输入密钥锁码(可直接回车)
    • 再次输入
    • 生成id_rsa私钥
    • 生成id_rsa.pub公钥
  • 输入命令将私钥转成pem格式

ssh-keygen -p -f ~/.ssh/id_rsa -m pem
  • 通过vim打开id_rsa生成后的文件,查看开头是不是-----BEGIN RSA PRIVATE KEY-----

Github填充步骤

进入github中提交项目的settings->Secrets and variables->Actions

imag2e.png

  • 根据项目要求,设置您自己的服务器IP地址用户名Linux系统默认通常为root)以及由服务器生成的id_rsa文件的pem值。
  • GitHub中这里是使用pem文件登录方式,无需输入服务器密码。

通过以上步骤配置服务器信息和GitHub登录方式时,确保按照项目需要正确设置相关字段。这样可以保证项目的顺利进行,并且以更加安全和便捷的方式管理代码和部署服务器。

最后提交代码

git push

通过Github提交项目中的Actions,查看运行进程。