前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >使用github Action自动化部署next项目

使用github Action自动化部署next项目

作者头像
biaoblog.cn 个人博客
发布2022-08-11 20:00:26
6940
发布2022-08-11 20:00:26
举报

要实现的功能

之前用过Github的Webhooks做过自动部署,原理就是自己服务器上启动一个服务,对外暴露一个接口,每次代码push到github时,github服务器会调用你的接口,收到请求后再执行代码部署。

这次决定换用Actions实现一个类似的功能,原理类似,代码push到github时,github服务器会执行你预设好的步骤,部署代码。要实现的功能就是:

  1. push代码
  2. github actions runner登录自己的服务器
  3. 切到目录,拉取代码,重启服务

Action的基本介绍 可以去阮一峰的博客看看

感觉挺不错:

GitHub Actions 入门教程

我们需要给github服务器授权在自己的服务器上执行一些命令,所以需要给它授权,把私匙给它。肯定不能明文写在代码里,放在那里呢?答案是Secrets中。在仓库的Settings中,将步骤1中生成的私匙添加到Secrets中(注意添加时Name是后面actions中要用到的)。一般会把私匙、服务器Host、服务器User都添加到Secrets中,这样,如果后续更改服务器或者登陆用户时就不需要改代码了。

后来我们不通过ssh key 登录了 而使用password了 在下面的yml文件中有写

1.创建Secrets变量:

设置好变量之后 开始编写我们的Action的执行脚本文件yml

可以在项目的Action中创建一个工作流,yml文件

然后选择自己创建新的模板,因为不熟悉别的模板,

暂时先用自己的

创建之后写入:

代码语言:javascript
复制
name: deploy
on:
 push:
    branches: [ master ]
 pull_request: 
    branches: [ master ]
  # Allows you to run this workflow manually from the Actions tab

jobs:
  build:
   runs-on: ubuntu-latest
   steps:
      - name: executing remote ssh commands
        
        # 使用appleboy/ssh-action@master来执行命令
        uses: appleboy/ssh-action@master
        with:
          host: ${{secrets.DEPLOY_HOST}}
          username: ${{secrets.DEPLOY_USER}}
          password: ${{secrets.DEPLOY_PASS_WORD}}
          script: cd /data/blog2Git/blog2/ && git pull && npm install && npm run build && pm2 delete all && pm2 start npm --name "my-next" -- start

完事就可以自动触发了..

本文参与 腾讯云自媒体同步曝光计划,分享自作者个人站点/博客。
如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 要实现的功能
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档