【实战知识】使用Github Action + Nginx实现自动化部署

打印 上一主题 下一主题

主题 1656|帖子 1656|积分 4970

大家好啊,我是独立开辟豆小匠。
先说一下配景~
我的小程序:豆流便签,现在使用云托管部署后端服务,使用轻量级服务器部署数据库和一些中间件。
因此服务器成本:云托管 + 云服务器
云托管每周花费5元,一个月就是50,一年就是500啊,以是这期预备把云托管优化掉!
<hr> 1. 需求分析

使用云托管的利益是很明显的,可以推送代码后自动化部署。假如转移到云服务器,怎么延续自动化部署的开辟体验咧,主要的需求如下:

  • 自动化部署test分支
  • 自动化部署master分支
  • 部署期间服务可用
其中第2、3点都是云托管有的功能,第1点云托管也可以做到。但是,得加钱!也就是多开一个服务。
2. 实现思路


实现主要依靠于GitHub提供的Action workflow工作流和Nginx的自动分发、故障转移。
3. 具体实现

3.1. GitHub Action

简单介绍下Github Action,它答应通过设置文件来自动构建测试部署项目等。
我们本次编写deploy.yml文件定义一个自动化部署的工作流,实现的效果:推送master/test分支到GitHub后,毗连云服务器,执行部署脚本
起首在项目根目录创建文件夹.github/workflows,然后新建文件deploy.yml,文件内容如下
  1. name: Build and Deploy
  2. on:
  3.   push:
  4.     branches: [master]        # 触发任务的分支
  5. jobs:
  6.   deploy:
  7.     runs-on: ubuntu-latest
  8.     steps:
  9.       - name: Checkout code
  10.         uses: actions/checkout@v2
  11.       - name: Build and run Go program
  12.         uses: appleboy/ssh-action@master
  13.         with:
  14.           host: ${
  15.    {
  16.     secrets.HOST_MILK }}        # 服务器地址 @1
  17.           username: ${
  18.    {
  19.     secrets.HOST_ROLE }} # 登陆用户名 @2
  20.           key: ${
  21.    
复制代码
免责声明:如果侵犯了您的权益,请联系站长,我们会及时删除侵权内容,谢谢合作!更多信息从访问主页:qidao123.com:ToB企服之家,中国第一个企服评测及商务社交产业平台。

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有账号?立即注册

x
回复

使用道具 举报

0 个回复

倒序浏览

快速回复

您需要登录后才可以回帖 登录 or 立即注册

本版积分规则

拉不拉稀肚拉稀

论坛元老
这个人很懒什么都没写!
快速回复 返回顶部 返回列表