专栏首页小谈谈的专栏【玩转腾讯云】腾讯云开发xCODING实现Hexo博客的持续集成
原创

【玩转腾讯云】腾讯云开发xCODING实现Hexo博客的持续集成

就在昨天,腾讯云云开发发布了新能力支持——云开发静态网站托管能力正式上线了。通过云开发的静态网站托管能力,可以帮助开发者快速上线Web网站。

CODING是国内首个一站式云端软件服务平台,为开发者提供了CODING DevOps整套研发流程管理系统解决方案。目前,CODING已于2019年8月进驻腾讯云。

今天我们将使用CODING的持续集成功能,将我的Hexo静态博客推送到云开发的静态网站托管中去。我将整个流水线绘制了一个示意图,供大家参考。从图上可以看出来,用户只需要手工推送源码,剩下的工作均由流水线完成。

流水线示意图

开通云开发及静态网站托管服务

注意:目前云开发静态网页托管能力仅在腾讯云云开发控制台支持。仅有付费方式为按量付费的环境可开通静态网页托管能力。云开发的静态网页托管能力,目前在开通环境时,静态网页托管服务不会直接开通,而是需要您在环境中单独开通。

开通云开发

登录腾讯云云开发控制台,开通云开发服务,创建云开发环境。在环境设置中记好你的环境ID。

开通静态网站托管能力

云开发控制台->基础服务->静态网站托管中开通静态网站托管服务。

腾讯云-云 API 密钥授权

目前,TCB CLI支持扫码、使用key两种方式登录,因为后期需要在CI中登录TCB,要尽量避免控制台交互,所以我们选择使用使用key的方式登录TCB。

登录腾讯云访问密钥控制台,进入访问管理->访问密钥->API密钥管理,新建一个API密钥,记好你的SecretId和SecretKey。

注意:建议使用子账号的方式创建API密钥,以保障主账号内资产的安全。请妥善保管好SecretId和SecretKey。

从0构建CODING持续集成流水线

创建一个DevOps项目

首先我们需要在CODING中创建一个DevOps项目,进入项目->代码仓库->克隆,获取仓库的Git地址。这个地址在于,你需要将你hexo的源码直接推送到这个仓库中,即前面流程图中提到的源码库。

构建持续集成流水线

CODING的CI是基于Jenkins的,所以我们直接编写Jenkinsfile就可以了。

项目->构建与部署->构建中,新建一个构建计划,代码源选择CODING,代码仓库就是刚刚的存放源码的仓库,配置来源选择使用静态配置的Jenkinsfile,确认创建之后,开始流程配置,目前CODING提供了两种流程配置编辑器——图形化编辑器和文本编辑器。这里我们选择文本编辑器。

为什么要选择文本编辑器?

  • 逼格高 逼格高 逼格高
  • 实际原因:就自定义操作范围而言,文本编辑器所支持的范围比图形化编辑器更大。图形化编辑器
pipeline {
  agent any
  stages {
    stage('检出') {
      steps {
        echo '[检出]正在从目标代码库检出最新源码...'
        checkout([
          $class: 'GitSCM', branches: [[name: env.GIT_BUILD_REF]],
          userRemoteConfigs: [[
            url: env.GIT_REPO_URL,
            credentialsId: env.CREDENTIALS_ID
          ]]
        ])
        echo '[检出]检出源码成功.'
      }
    }
    stage('构建') {
      steps {
        echo '[构建]正在构建Hexo环境并渲染网站静态文件...'
        sh '''npm --version
npm install -g hexo-cli
npm install -g
hexo g
'''
        echo '[构建]构建完成.'
      }
    }
    stage('推送') {
      steps {
        echo '[推送]准备将静态文件推送到TCB云开发...'
        sh 'npm i -g @cloudbase/cli'
        sh 'tcb login --apiKeyId "${SecretId}" --apiKey "${SecretKey}" || echo "Y" || exit 0'
        sh 'tcb hosting:deploy public -e "${envId}" || echo "y" || exit 0'
        echo '[推送]推送完成.'
      }
    }
    stage('事件消息') {
      steps {
        echo '[事件消息]持续集成完成.'
      }
    }
  }
  environment {
    envId = ''
    SecretId = ''
    SecretKey = ''
  }
}

这样,你只需要填写environment中的envId(环境ID)、SecretId和SecretKey(腾讯云API密钥)就可以了。

这时候,切换到图形化界面看一下,你的流水线是不是就构建好了呢?

构建好的流水线

加快构建速度

  • 使用cnpm加速hexo环境构建
  • 使用缓存,缓存npm目录、和node_modules目录(/root/workspace/node_modules)

验证

将hexo代码推送到该项目中的源码库中,将自动触发构建。

构建过程

查看构建日志,发现推送成功。

构建日志

登录云开发控制台静态网站托管中已经可以看到生成好的hexo文件了。

已在静态网站托管中看到推送的文件

绑定一个域名,开始愉快的玩耍吧。

参考文献

原创声明,本文系作者授权云+社区发表,未经许可,不得转载。

如有侵权,请联系 yunjia_community@tencent.com 删除。

我来说两句

0 条评论
登录 后参与评论

相关文章

  • 【玩转腾讯云】征文活动获奖名单公布

    由云+社区联合腾讯云免费体验馆及各产品团队举办【玩转腾讯云】征文活动,吸引入驻作者积极参加,非常感谢各位作者的参与。经过评委老师从产品创新性、实用性、可借鉴性、...

    云加社区
  • 【玩转腾讯云】九.云开发CloudBase快速上手hexo博客

    ① 在产品控制面板中找到云开发CloudBase——立即使用,进入云开发授权开通页面

    一只特立独行的兔先生
  • 【腾讯云的1001种玩法】如何腾讯云存储上搭建一个hexo博客

    一.选型我要写文章做博客,我对网站的要求是:1.可以绑定域名,2.访问速度快,3.价格非常便宜,4.不需要操心维护,5.更新方便。 目前有4个选择:1.IaaS...

    李鑫
  • 云+社区【玩转腾讯云】征文活动获奖名单公布

    由腾讯云+社区主办的云+社区【玩转腾讯云】征文活动已经圆满顺利的落下帷幕!感谢小伙伴们对云+社区征文活动的支持!接下来,就是期待已久的开奖时刻啦。

    云加社区
  • 【腾讯云的1001种玩法】征文活动

    腾讯云技术社区「腾云阁」上线以来得到了广大程序员们的支持,为了吸引更多的开发者入驻,现再次举办【腾讯云的1001种玩法】征文活动。只要是与「腾讯云」相关的干货原...

    云加社区
  • 丝滑的博客:基于COS/CDN/CI/Hexo/DNS

    作者介绍 羽瀚尘:研究生在读,喜欢互联网技术,善于使用公有云服务满足现实需求。 ? ? ? 目前搭建博客有哪些选择呢? 动态博客:WordPress... ...

    云存储
  • 【腾讯云的1001种玩法】征文活动获奖名单公布

    腾讯云技术社区「腾云阁」举办【腾讯云的1001种玩法】征文活动吸引了大量程序员们入驻社区。活动期间,一共征集到来自 42 位作者的 83 篇征文。经过评委老师从...

    云加社区
  • 【玩转腾讯云】用COS+CDN+CI+Hexo+Next+VsCode+智能DNS搭建丝滑的博客

    对于一般的内容而言,使用动态博客较为复杂,需要数据库、运行环境的配合。动态博客的代码也较为复杂,修改代码进行个性化难度较高。

    羽翰尘
  • 一份来自B站UP主的上云邀请

    ? 软件工程专业学生的日常是什么样? 除了Day-Day-Coding,还可以写博文,做视频,更能成为B站UP主。 大家好,我是B站UP主「Mintimat...

    腾讯云计算产品团队
  • 【腾讯云的1001种玩法】Hello Hexo之静态博客搭建+自动部署

    本文通过搭建流程、nginx安装和配置、本地搭建Hexo环境以及自动化部署这四个步骤,给大家介绍如何在腾讯云的CentOS7云主机上部署一个Hexo博客,马上让...

    饶文津
  • 【玩转腾讯云】十一.轻松打造一款好用的私有云笔记

    ②选择自定义配置——计费模式为“按量付费”——地域选择“北京”——可用区选择“随机可用区”——网络选择“默认”即可

    一只特立独行的兔先生
  • 如何用Serverless构建博客系统【含源码】

    本期腾讯云大学大咖分享课程邀请到腾讯云高级工程师陈嘉欣教我们如何用Serverless构建博客系统。课程分为四个部分:

    可可爱爱没有脑袋
  • Hexo 博客部署到腾讯云教程

    程序员充电站
  • Serverless 架构揭秘与静态网站部署实战

    抗击疫情,腾讯云在行动。Serverless(无服务架构)被誉为下一代云计算技术,自概念推出以来,因为能带来研发交付速度提升与成本的降低在业内异常火爆。本次课程...

    可可爱爱没有脑袋
  • 拿什么记录下这魔幻又真实的一年

    当这一年还剩下最后不到一个星期,我们试图将阳光、洪水、暴乱、疫情、蝗灾、山火、贫困拼接成一幅游牧的画卷。虽然这些碎片并不能构成一幅完整的地图。

    云存储
  • 如何在腾讯云COS部署HEXO博客

    前段时间发现我的博客老是报456错误,而且国内速度加载越来越慢,不知道是什么问题,打算优化下。正在我查资料的时候,突然发现,腾讯云COS竟然支持静态网站部署了,...

    Techeek
  • 【玩转腾讯云】十三.基于云平台的安全攻防靶场系统构建

    ②选择自定义配置——计费模式为“按量付费”——地域选择“北京”——可用区选择“随机可用区”——网络选择“默认”即可

    一只特立独行的兔先生
  • 【玩转腾讯云】十二. 在云端构建日志集中存储管理平台

    ②选择自定义配置——计费模式为“按量付费”——地域选择“北京”——可用区选择“随机可用区”——网络选择“默认”即可

    一只特立独行的兔先生
  • 不再忍受龟速 Github,现在你也可以在云开发上部署个人博客啦!

    Hexo 是被大家广泛使用的静态博客系统, 除了在 Github Pages 部署以外,现在你有了一个新的选择,那就是使用云开发静态网站功能来部署啦!

    腾讯云开发TCB

扫码关注云+社区

领取腾讯云代金券