使用Github Actions自动部署vue项目到nginx服务器

news/2024/11/8 9:31:03/

解决的问题:妈妈再也不担心我deploy时候手滑了

1. 避免手动执行重复的前端发布流程,节约开发时间和耐心

2. 减少了使用Jenkins类似的工具来做这种简单的发布流程,减少了第三方系统(Jenkins)的维护成本

前置条件

1. 客户机上装好了nodejs和git、npm等必要的前端开发工具和一个前端项目

2. 一台具有公网IP的服务器配置好了ssh和nginx

操作步骤

假定你已经有一个github仓库用于管理你的vue项目了,例如我的项目地址:https://github.com/Sjj1024/CvReport

然后开始配置action:

依次点击:项目主页 => Actions => Node.js => Set up this workflow

配置这个actions的node.js.yml文件并smart commit:

# 发布项目到自己的服务器上的配置
name: DeployServer
# on 表示触发actions的条件
on:push:branches: [main] #main分支在push的时候会触发pull_request:branches: [main] #main分支在PR的时候会触发jobs:build:runs-on: ubuntu-latest #nodejs执行的操作系统steps:- uses: actions/checkout@v3 #拉取你的最新代码- name: Use Node.jsuses: actions/setup-node@v3with:node-version: "14.x"  # 指定你的node版本- run: npm install- run: npm run build- name: TranslateFile# uses: wangyucode/sftp-upload-action@24f8bb83383dc39bed201ee5da01475e6c38c568uses: wangyucode/sftp-upload-action@v1.1with:host: ${{ secrets.SERVER_IP }} #你的nginx服务器公网ipport: ${{ secrets.SERVER_PORT }} #你的nginx服务器ssh端口username: ${{ secrets.USERNAME }} #你的nginx服务器用户名password: ${{ secrets.PASSWORD }} #你的nginx服务器密码localDir: "dist" #你vue项目build好的文件的路径,每次服务器上会自动删除对应的文件夹后重新覆盖remoteDir: ${{ secrets.SERVER_DESTINATION }} #你要把你build好的文件夹放到nginx服务器上的什么位置,一般都是nginx配置的站点路径

配置.yml中使用到的参数,依次加入上述yml文件中用到的5个变量:SERVER_IPSERVER_PORTPASSWORDUSERNAMESERVER_DESTINATION 

依次点击:项目主页 => Settings => Secrets => New repository secrets

3.3.1   为了安全性和便捷性,yml文件中的部分信息可以以变量的形式在secrets中配置。
3.3.2   同账户下的不同repository之间的secrets不互通。
3.3.3   yml中可以使用 ${{secters.变量名}}来读取secrets中配置的变量。
3.3.4   secrets中配置的值只能删除和更新,无法查看之前提交的值。
3.3.5   yml中也是可以直接写入具体的值的,需要使用双引号包裹起来, 例如 host: "192.168.1.1"
3.3.4   。这个插件wangyucode/sftp-upload-action@v1.1中使用sftp协议上传文件夹到服务器的

 

 

配置好你的nginx服务器

   确保你的服务器上成功开启了ssh服务,并且你GitHub secrets中配置的用户可以正常使用sftp服务。

可以使用以下代码测试:

ssh 用户名@服务器IP -p 端口号一般都是22

然后输入密码,能成功登陆,说明是没问题的 

安装并启动你服务器上的nginx,注意为了避免vue路由和nginx路由冲突,需要在nginx中配置vue项目的try_files。具体的nginx配置我就不说了。

验证是否可以成功自动部署

    修改你的vue项目代码,并提交github中(yml更新也会触发Actions,因为也commit并push了)。

    打开你的github中该项目,点击Actions查看,一般提交完代码一两分钟后内会开始自动执行Actions中的yml脚本。

最后到服务器上的文件夹下看下是否存在文件: 只能说,完美!!!

然后用服务器ip访问一下试试?我只能说,牛B


http://www.ppmy.cn/news/3560.html

相关文章

多目标萤火虫优化算法(Matlab代码实现)

👨‍🎓个人主页:研学社的博客 💥💥💞💞欢迎来到本博客❤️❤️💥💥 🏆博主优势:🌞🌞🌞博客内容尽量做到思维缜密,逻辑清晰,为了方便读者。 ⛳️座右铭:行百里者,半于九十。 📋📋📋本文目录如下:🎁🎁🎁 目录 💥1 概述

leetcode每天5题-Day56-动态规划2

目录1. 整数拆分2. 不同的二叉搜索树3.1. 整数拆分 343. 整数拆分-中等 讲解 动规 思路:拆分一个数 n 使之乘积最大,那么一定是拆分m个成近似相同的子数相乘才是最大的。 动规五部曲; ①确定dp数组(dp table)以及下标的含义 …

性能测试之nginx监控系统搭建

不同tomcat服务器的负载均衡 在Nginx服务器192.168.43.138上安装Nginx,(安装教程在前几篇文章有详细描述 )实现反向代理tomcat负载均衡 执行一下命令,关闭防火墙 systemctl disable firewalld.service systemctl stop firewall…

【C++】C++入门

屏幕前的你,一起加油啊!!! 文章目录一、命名空间(namespace)1.命名空间的定义(::域作用限定符)2.命名空间的使用(三种使用方式)二、C输入&输出&#xff…

四道编程题(涉及最大公约数最小公倍数,子序列等)

tips 1. scanf当是读取整数%d的时候,这时候如果它读取到\n,它就会停止读取。并且碰到空格的时候也会跳过。 2. getchar不需要传入参数,读取失败的时候会返回EOF。那getchar或者scanf到底是怎么从键盘上读取我输入的字符呢?在getc…

运动神经元的证型

运动神经元疾病提倡以中医中药为主的治疗方法。本病以虚证多见,或虚实夹杂,一般的治疗原则为补脾益损,温养肾阳,滋补肝血,养阴祛湿,其方法有以下几种。 辨证分型治疗 按照中医传统的辨证论治方法&#xff0…

分享66个PHP源码,总有一款适合您

源码下载链接:https://pan.baidu.com/s/1nVYzWumhCqOiCna0c-4_tw?pwd6666 提取码:6666 战神引擎对接98码支付充值接口 v2.0 MayiCMS蚂蚁分类信息系统单站版 v6.1 wordpress花团养生专家blossom主题整站源码 v1.2 ClassCMS内容管理系统 v3.5 信呼协同办…

全面回顾2022年加密行业大事件:破后而立方能绝处逢生

2022年,加密领域以Luna/UST的崩溃为起点开启了漫长的加密寒冬,在严峻的宏观环境下以及一系列戏剧性事件中遭受了沉重打击。2022年初,加密货币生态系统的市值达到近3万亿美元,而截至年底已蒸发2万亿美元,随之消失的还有…