使用coding CI服务实现hexo自动化发布部署

引言

hexo是一个操作简单方便的静态网页式博客,但是这也带来了几个问题。

  • 每次hexo new post ""写作好以后,都要进行生成网页部署网页的操作,这种重复操作是程序员极为讨厌的行为。
  • 同样,每次想要在新的设备上写作就更加麻烦,新设备上要和原设备上有一样的环境,重新配置环境的时候还有可能出现各种问题。花费了一段时间配好环境,开始写作了,又要经历上一个问题。

而各家的持续集成服务就能解决这样的问题,这里推荐coding的CI服务,每个月有1000次的免费持续集成次数,而且提供的服务器配置也很可以了。

image-20210910165504375

下面介绍一些基本概念,不需要的朋友可以直接向下调到教程。

基本概念

持续集成

在软件工程中,持续集成(CI)是指将所有开发者的工作副本每天多次合并到主干的做法。持续集成在现代软件研发流程中,扮演了十分重要的角色。通过对每次提交的代码进行自动化的单元测试、代码检查、编译构建、契约测试,甚至自动部署,能够大大降低了开发人员的工作负担,减少了许多不必要的重复劳动,持续提升代码质量和开发效率。毫无疑问,持续集成是开发者和研发团队的福音。

持续集成是指软件发布流程的构建和单元测试阶段。提交的每一个修订都会触发自动化的构建和测试操作。

采用持续交付时,系统会自动构建、测试并准备代码变更,以便发布到生产环境中。持续交付通过在构建阶段后将所有代码变更部署到测试环境和/或生产环境中,实现对持续集成的扩展。

当然我们想要实现自动部署并不需要完整的持续集成功能,只需要自动构建。

Jenkins

Jenkins 是一个开源软件项目,是基于 Java 开发的一种持续集成工具,用于监控持续重复的工作,旨在提供一个开放易用的软件平台,使软件的持续集成变成可能。

没错,它就是一个具体的持续集成解决方案。基于 Java 实现。 可以实现:

  1. 持续版本发布/测试;
  2. 监控外部调用执行的工作;

教程

工具

  1. 能够正常发布使用的hexo本地项目。
  2. coding账户
  3. Git

coding访问令牌

image-20210910171142070

新建访问令牌

image-20210910171239880

保存好令牌和用户名备用。

coding项目

本项目中需要一个git仓库,可以使用github||gitee||coding。建议使用coding,因为是采用的coding的集成服务,同平台稳定性高一些。

首先直接创建一个全功能DevOps项目。

image-20210910171625966

进入项目

image-20210910171847370

进入代码仓库,新建一个仓库,因为里面会有配置文件,含有密码等敏感信息,请选择私有仓库。

创建完成后本地文件夹绑定远程仓库。

git remote set-url origin https://e.coding.net/仓库地址.git

image-20210910172336024

本地hexo目录,编辑——config.yml配置文件。找到deploy

image-20210910172454975

采用coding 免费CI构建部署时候每次都是一个新的环境,相当于新的设备,每次都要输入凭证才可以成功部署。我是同时部署在github和gitee,格式为:

 github: https://username:token@github.com/项目地址.git
 gitee: https://用户名:密码@gitee.com/项目地址.git

github需要采用用户名加token的方式访问,不要使用密码!不要使用密码!会构建失败!

获取token

在https://github.com登录你的帐号,登录以后点击右上角你的头像的Settings

img

2、 点击Developer settings下的Personal access tokens

img

3、点击https://github.com/settings/tokens/new这个超链接,就是创建你的token。

img

4、在Token description中随便填一个描述名称,下面的复选框是你这个token需要的权限,全部勾上就可以了。

img

然后点击下面这个绿色的按钮:

img

5、下面这个就是你的token了,可以直接复制使用。将其填入配置文件。

img

配置持续集成

进入coding项目选择持续集成–构建计划–创建构建计划

image-20210910173543557

image-20210910173619731

image-20210910173648987

上文提到的仓库是新建了coding仓库,在代码仓库中选择你创建的仓库,如果你是放在githu或者其他仓库服务,请选择相应的仓库并授权。之后点击确定。

之后在流程设置中进行设置。

image-20210910174009440

下面贴上代码

pipeline {
    agent any
    stages  {
       stage("pull") {
            steps {
               sh 'ls'
              sh 'git config --global user.name "username"'  
             sh 'git config --global user.email "email"'
              sh 'ls'
              sh 'git clone https://用户名:令牌@e.coding.net/仓库地址.git .'//输入上面提到的coding用户名和令牌
            }
        
        }
        stage("hexo")
         {
           steps
           {
              sh 'npm install -g hexo-cli'  
              sh 'npm install hexo --save'
              //如果你的hexo项目有其他特别功能需要的服务,可以在此添加相应指令
           }
         }
         stage("发布")
         {
             steps
           {
           sh 'hexo cl'  //hexo clean
           sh 'hexo g'  //hexo generate
           
           sh 'hexo d'  //hexo deploy
           }
         }
        
    }
}

image-20210910174437009

开启缓存,加快部署速度。

image-20210910174534627

之后就可以构建了,确认上述操作无误后。点击保存。

自动部署

将hexo本地项目git push到你绑定的的仓库,coding就会自动帮你构建啦。

成功截图。

image-20210910174823171

常见问题

fatal: unable to access ‘https://-----@github.com/----.git/’: Failed to connect to port 443: Connection timed out

image-20210910174928992

image-20210910174958327

一般是config文件中部署设置的用户名或密码错误。

2.fatal: could not read Username for ‘https://gitee.com’: No such device or address

同上 用户名错误

3.image-20210910175404458

将config中highlight enable改为false

image-20210910175508010

如有疑问欢迎与我沟通。

我的博客:

https://brook2bubble.gitee.io/

https://brookdeng.github.io/

多端协作

关于多端写作,网上有Hexo同步语雀文章,感兴趣的可以搜一搜看一看,但是这样的方法会导致每次写作都要使用语雀来写作,配置起来也更加麻烦。

常用电脑

写作后直接push到仓库

其他电脑

编辑md文档后,上传到仓库_post文件夹。注意文档格式。

image-20210910183835303

md文档头文件

---
title: 使用coding CI服务实现hexo自动化发布部署
date: yyyy-MM-dd HH:mm:ss
categories: [Hexo]
tags: [CI,Coding,hexo,git]

---

手机端

同上,比较麻烦,不过也很少有手机写博客的吧。

参考

  1. 持续集成介绍
  2. hexo利用coding自动化持续集成云端部署多平台
  3. Hexo+coding实现自动化部署
  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值