首页
归档
分类
标签
更多
留言板
说说
关于
Search
1
饥荒联机版控制台代码大全
1,026 阅读
2
编译安装带 Brotli 压缩的 Nginx
930 阅读
3
Obsidian多端快速同步插件
901 阅读
4
树莓派+EC20模块实现连接蜂窝网和短信收发
888 阅读
5
EC20通过gammu接收短信再转发优化
865 阅读
软件
CSS
Python
MySql
Java
typecho自定义
Vue
学习笔记
Linux
Shell脚本
Nginx
树莓派
邮件
拍照
热点
ec20
云盘
系统烧录
好玩
饥荒
硬件
工具
笔记
随心记
登录
Search
标签搜索
树莓派
Linux
Java
CSS
饥荒
小妙招
个人热点
nextcloud
云盘
DHT11
学习笔记
树莓派拍照
Nginx
MySql
ESP
娱乐
ec20模块
文件共享
git
图床
Mango
累计撰写
51
篇文章
累计收到
7
条评论
首页
栏目
软件
CSS
Python
MySql
Java
typecho自定义
Vue
学习笔记
Linux
Shell脚本
Nginx
树莓派
邮件
拍照
热点
ec20
云盘
系统烧录
好玩
饥荒
硬件
工具
笔记
随心记
页面
归档
分类
标签
留言板
说说
关于
搜索到
1
篇与
的结果
2022-08-11
利用GitHub Action自动集成部署Hexo博客到服务器
前引Hexo生成的静态博客有着安全、快速等特点,但是同时也存在一些比较明显的痛点由于没有后台,出现错误时移动端修改不方便本地文件丢失,很难找回原本博客配置文件没有Nodejs环境不能部署而这些问题都能通过Github Action得到比较好的解决Hexo本地博客创建{% note info simple %}已经有的可以跳过{% endnote %}第一次使用的话本地Hexo环境是肯定要有的,如果本地博客都没有的话后续步骤也没有意义了网上已经有比较成熟的教程,此处不做具体描述,{% link 从0开始用Hexo框架搭建个人博客(无坑版),清菡,https://zhuanlan.zhihu.com/p/305812430 %}{% link Hexo+阿里云,手把手教你如何搭建属于自己的个人博客(超详细),到站了还不下车,https://zhuanlan.zhihu.com/p/126243913 %}GitHub仓库创建在创建时最好选择私有,避免重要内容泄露新建工作流文件在博客更目录下新建.github/workflows/deploy.yml文件,deploy.yml文件的文件名可以随意起,只要是yml文件就行将配置内容复制到新建文件中# 当有改动推送到master分支时,启动Action name: Hexo博客自动部署 on: push: branches: - master release: types: - published jobs: deploy: runs-on: ubuntu-latest steps: - name: 检查分支 uses: actions/checkout@v2 with: ref: master - name: 安装 Node uses: actions/setup-node@v1 with: node-version: "12.x" - name: 安装 Hexo run: | export TZ='Asia/Shanghai' npm install hexo-cli -g env: CI: true - name: 缓存 Hexo uses: actions/cache@v1 id: cache with: path: node_modules key: ${{runner.OS}}-${{hashFiles('**/package-lock.json')}} - name: 安装依赖 if: steps.cache.outputs.cache-hit != 'true' run: | npm install --save env: CI: true - name: 生成静态文件 run: | hexo clean hexo generate env: CI: true - name: 部署 uses: burnett01/rsync-deployments@@5.2.1 with: switches: -avzh path: public/ remote_path: /var/hexo/ remote_host: mstzf.cn remote_port: 22 remote_user: root remote_key: ${{ secrets.SERVER_KEY }} 文本中流程执行结果是将静态文件部署到个人服务器中去其中,最后部署部分脚本通过 ssh 上的 rsync 将文件部署到远程文件夹中switches:rsync 标志,例如:-avzr --deletepath:要上传文件地址,当前hexo g之后静态文件在public/中remote_path:博客在服务器中的路径remote_host:主机地址remote_port:ssh连接端口号remote_user:要连接的用户remote_key:服务器生成的密钥服务器获取ssh连接密钥登录服务器终端,输入命令ssh-keygen出现的提示内容一路回车,最终会在~/.ssh生成公钥和私钥id_rsa.pub、id_rsa将公钥id_rsa.pub复制到authorized_keyscat ~/.ssh/id_rsa.pub >> ~/.ssh/authorized_keys复制一份私钥的内容新建secrets登录GitHub,选择要上传博客源文件的仓库->setting下name:SERVER_KEYValue:刚刚复制的私钥name可以随意但要和流程文件中secrets调用的名字一致检查.gitignore文件.DS_Store Thumbs.db db.json *.log node_modules/ public/ .deploy*/文件中内容表示上传要忽略的文件,如果文件不存在或者内容有缺少,要及时补充否则会上传大量无用文件,在添加和提交时都会浪费大量时间提交博客源代码到github将博客根目录下和主题文件下存在的.git文件删除或者移动到其非博客文件夹下将本地博客目录初始化文git仓库git init #初始化 git remote add origin <github仓库ssh代码> git checkout -b master # 切换到master分支,本地git仓库搭建成功后将源代码提交到GitHub仓库git add . git commit -m "first commit" git push origin masterGitHub Action会自动执行工作流程,如果一切顺利没有差错的话,博客会自动部署到我们的服务器上去
2022年08月11日
255 阅读
0 评论
0 点赞