基于Coding CI (持续集成) 实现 Hexo 在 Coding 上的自动化部署

目前最火的 CI 工具当属 Travis CI 了,网上与之相关的文章相当多,同时部署在 GitHub 和 Coding 上的骚操作也不少,这样做的结果显而易见,增加了数据的安全性。当然使用 CI 的优点不止于此,想象一下当你发现发布文章有错别字时,想要修改却苦于电脑不在身边,在其他电脑上,仅仅是配置环境就是很麻烦的一件事。

不过当你使用了 CI 工具后,这些情况大有改观,对于小错误,只需要在 Coding 仓库里修改,CI 工具便会自动部署文章,得益于 Coding 的 Cloud Studio ,你甚至于还可以使用它来修改文章,当然这不是我这一篇文章的重点,在此不做过多讨论,有兴趣的读者可以自己尝试部署一下。

言归正传,Coing 自带的 CI 工具其实就是 Jenkins .

我采取的是 blog 源码和 Jenkinsfile 放到一个私有仓库,生成的静态网页部署在另一个公有仓库。
Coding 密钥的获取

Coding改版以后,要使用访问令牌才可以免密访问仓库,令牌只会显示一次,生成后记得及时复制

clone 时使用 git clone https://user.name:user.password@~ 就可以免密clone仓库了,

user.name 和 user.password 便是刚才获得的用户名和访问令牌

Jenkinsfile文件的编写

一顿操作猛如虎后,就是确定方案后就是对流程的细化。

建立两个仓库,一个私有的用来存放 blog 源码和 Jenkinsfile 文件,一个公有的用来存放生成的静态文件。
Jenkinsfile 文件用来检测私有仓库的的行为,发现变化后执行脚本,部署到公有的博客仓库中去。

不得不说这是我遇到的一个大坑,本来 shell 命令写的就不熟练,Coding 还有不少限制。

理清思路后我开始我这样写:

sh 'cd blog'
sh 'hexo g -d'

???显示部署成功,可是没啥反应啊。改成这个样子:

sh 'ls -a'
sh 'cd blog'
sh 'ls -a'
sh 'hexo g -d'

好家伙,在当前目录压根没动。没关系,你不动我动还不行吗,直接把所有的文件都放到根目录下来。

经过一番斗智斗勇,脚本终于写成了,代码如下:

pipeline {
  agent {
    label 'node-10'
  }
  stages {
    stage('hexo') {
      steps {
        sh 'npm install -g hexo-cli'
      }
    }
    stage('拉取仓库') {
      steps {
        sh 'git clone https://~ .'
      }
    }
    stage('发布') {
      steps {
        sh 'hexo clean'
        sh 'hexo g -d'
      }
    }
  }
}
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值