理想是火,点燃熄灭的灯。
之前用过Github的Webhooks做过自动部署,原理就是自己服务器上启动一个服务,对外暴露一个接口,每次代码push到github时,github服务器会调用你的接口,收到请求后再执行代码部署。
这次决定换用Actions实现一个类似的功能,原理类似,代码push到github时,github服务器会执行你预设好的步骤,部署代码。要实现的功能就是:
Action的基本介绍 可以去阮一峰的博客看看
感觉挺不错:
我们需要给github服务器授权在自己的服务器上执行一些命令,所以需要给它授权,把私匙给它。肯定不能明文写在代码里,放在那里呢?答案是Secrets中。在仓库的Settings中,将步骤1中生成的私匙添加到Secrets中(注意添加时Name是后面actions中要用到的)。一般会把私匙、服务器Host、服务器User都添加到Secrets中,这样,如果后续更改服务器或者登陆用户时就不需要改代码了。
后来我们不通过ssh key 登录了 而使用password了 在下面的yml文件中有写
1.创建Secrets变量:
设置好变量之后 开始编写我们的Action的执行脚本文件yml
可以在项目的Action中创建一个工作流,yml文件
然后选择自己创建新的模板,因为不熟悉别的模板,
暂时先用自己的
创建之后写入:
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
完事就可以自动触发了..
作者: Bill 本文地址: http://biaoblog.cn/info?id=1651132794333
版权声明: 本文为原创文章,版权归 biaoblog 个人博客 所有,欢迎分享本文,转载请保留出处,谢谢!
下一篇:ssh学习随笔记录