做为一个略微看过nodejs语法,但又不懂nodejs的攻城狮,搭建hexo环境很是麻烦,要考虑到FQ、版本兼容等问题。于是乎,博主每换一个电脑,为了能继续发博客,都需要在新电脑上花一天时间重新搞一下 hexo 环境,楼主感觉还是有简洁的方案来实现我一提交代码就可以自动发布博客,不需要再手动操作一波,这样岂不美哉。so,也就有了今天的经历,代码可以持续集成,博客也可以。楼主的解决方案是使用gitlab与gitlab-runner实现博客部署的持续集成,效果真的不要太好。

持续集成工具 gitlab-runner 介绍

gitlab-ci全称是gitlab continuous integration的意思,也就是持续集成。中心思想是当每一次push到gitlab的时候,都会触发一次脚本执行,然后脚本的内容包括了测试,编译,部署等一系列自定义的内容。而gitlab-runner 是 gitlab 提供的持续集成工具。

简单的说,要让CI工作可总结为以下几点:

  • 在仓库根目录创建一个名为.gitlab-ci.yml 的文件。
  • 为该项目配置一个runner服务,楼主这里使用的是使用gitlab提供代码厂库,在自己的腾讯云服务器上运行gitlab-runner服务。
  • 完成上面的步骤后,每次push代码到Git仓库, runner就会自动开始pipeline。

gitlab-ci的具体部署流程如下图所示(图来自网络,侵权删)

Hexo 博客环境迁移

迁移前版本控制

其实每个nodejs工程根目录下都有一个package.json文件,里面都包含了我们所用的插件信息,只需要我们在安装插件的时候注意加上--save,就会自动把插件信息保存到 package.json 中。

如果目录下没有 package.json 文件也不要紧,在跟目录命令行中运行 npm init 即可生成。

博客环境安装

前面做好版本控制,那接下来的事情就好做了。

  1. 备份你的代码,注意:代码中不需要包含 node_modules 文件夹了
  2. 先在新电脑中装上 nodejs 环境
  3. 由于国内安装 npm 的一些插件需要FQ,所以这里直接用淘宝镜像:cnpm,安装方法:npm install -g cnpm --registry=https://registry.npm.taobao.org
  4. 安装hexo客户端:cnpm install hexo-cli -g
  5. 新建博客目录:hexo init
  6. 把你备份的代码放到此目录下,如果有重复的文件直接覆盖就行
  7. 安装 hexo 插件:cnpm install
    就这样,新的博客环境迁移完成了,执行 hexo s 开始你新的博客征程吧!

gitlab-runner环境搭建

gitlab-runner的安装

使用gitlab官网提供的下载地址太慢,所以找到了一个国内的镜像地址:

  1. 新建 gitlab-ci-multi-runner.repo
touch /etc/yum.repos.d/gitlab-ci-multi-runner.repo
  1. 将以下内容写入文件
[gitlab-ci-multi-runner]
name=gitlab-ci-multi-runner
baseurl=http://mirrors.tuna.tsinghua.edu.cn/gitlab-ci-multi-runner/yum/el7
repo_gpgcheck=0
gpgcheck=0
enabled=1
gpgkey=https://packages.gitlab.com/gpg.key
  1. 执行
sudo yum makecache
sudo yum install gitlab-ci-multi-runner
  1. 以上是楼主在centos上的安装过程,其他系统版本的安装请移步

<?xml version="1.0" encoding="utf-8" ?> <nlog xmlns="http://www.nlog-project.org/schemas/NLog.xsd" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" autoReload="true" internalLogLevel="Warn" internalLogFile="internal-nlog.txt"> <extensions> <add assembly="NLog.Web.AspNetCore"/> </extensions > <variable name="logDirectory" value="${basedir}\logs\"/> www.dasheng178.com<!--define various log targets-->www.yongshiyule178.com <targets> <!--write logs to file--> <target xsi:type=www.leyou2.net   www.jyz521.com "File" name="allfile" fileName="${logDirectory}\nlog-all-${shortdate}.log" layout="${longdate}|${logger}|${uppercase:${level}}|${message} ${exception}" /> <target xsi:type="Network" name="elastic" keepConnection="false" address ="tcp://ip地址:5000" index="msglog-${shortdate}" layout="${longdate}|${logger}|${uppercase:${level}}|${message} ${exception}" />

gitlab-runner注册到gitlab官网

在终端输入gitlab-runner register 会出现以下过程:

[root@localhost ~]# gitlab-runner register
Running in system-mode.                            Please enter the gitlab-ci coordinator URL (e.g. https://gitlab.com/):
https://gitlab.com/
Please enter the gitlab-ci token for this runner:
your gitlab-ci token
Please enter the gitlab-ci description for this runner:
[localhost.localdomain]: my-runner
Please enter the gitlab-ci tags for this runner (comma separated):
your tag
Whether to run untagged builds [true/false]:
[false]: true
Registering runner... succeeded                     runner=c5552857
Please enter the executor: parallels, shell, virtualbox, docker+machine, docker-ssh+machine, docker, docker-ssh, ssh, kubernetes:
shell
Runner registered successfully. Feel free to start it, but if it's running already the config should be automatically reloaded! 

在注册过程中有两个比较重要的参数一个是gitlab的URL,另一个就是注册的token,这两个参数可以在gitlab上找到,过程是Settings>CI/CD>Runners settings>Specific Runners,如下图所示

另外还需要打开

要是自己注册的gitlab-runner生效还学要禁用Shared Runners

以上过程是楼主在centos上操作的,其他版本请移步gitlab-runner注册到gitlab

创建.gitlab-ci.yml,并放着工程的根目录下

.gitlab-ci.yml具体配置请移步官方文档,下面给出楼主使用的.gitlab-ci.yml具体内容

variables:GIT_STRATEGY: nonestages:- build_and_deployjob:stage: build_and_deployscript:- cd /opt/I-team-fly- git pull --tags origin dev- hexo clean- hexo g- hexo donly: - dev

查看gitlab上的构建结果

小结

当然这个过程中还是要涉及到几次使用ssh-key来设置免密登录,楼主就不在这里赘述了,请遇到问题的小伙伴自行Google。

持续集成工具 gitlab-runner 介绍相关推荐

  1. 不容错过的8个持续集成工具

    如果你很熟悉"持续集成",一定会同意这样的观点:"它已经逐渐成为一种必不可少的工具".在这篇文章中,我们将介绍几款流行的持续集成工具.阅读后,你会对这些CI工具 ...

  2. 8个流行的持续集成工具

    8个流行的持续集成工具 如果你很熟悉"持续集成",一定会同意这样的观点:"使用它已经成为一种强制".如今有很多持续集成工具.  接下来将依次介绍8款持续集成工具 ...

  3. 自行搭建嵌入式持续集成工具:从0到1

    为什么持续集成备受推崇? 软件开发过程中,开发方式及开发工具是至关重要的. 持续集成(Continuous Integration,CI)以使产品在快速迭代的同时保持高质量为目的,指开发人员定期将代码 ...

  4. python持续集成工具_21 个好用的持续集成工具,总有一款适合你

    原标题:21 个好用的持续集成工具,总有一款适合你 市场上持续集成工具众多,找到一个合适的工具并非易事,下面介绍了 21 个比较受欢迎的 CI 工具,并附上了下载链接. 1. Buddy 对 Web ...

  5. 21 个好用的持续集成工具,总有一款适合你

    市场上持续集成工具众多,找到一个合适的工具并非易事,下面介绍了 21 个比较受欢迎的 CI 工具,并附上了下载链接. 1. Buddy 对 Web 开发者来说,Buddy 是一个智能的 CI/CD 工 ...

  6. 21 个好用的持续集成工具

    市场上持续集成工具众多,找到一个合适的工具并非易事,下面介绍了 21 个比较受欢迎的 CI 工具,并附上了下载链接. 1. Buddy 对 Web 开发者来说,Buddy 是一个智能的 CI/CD 工 ...

  7. 中小型研发团队架构实践:高效率、低风险,一键发布并测试的持续集成工具Jenkins...

    一.Jenkins 简介 \\ 当每月发布次数变得越来越多时,如超过 200 次,发布工作人员的工作量会翻倍,此时由人工发布操作失误引起的风险会变得越来越大.为了提高项目的发布效率,也为了降低由人工操 ...

  8. 持续集成工具 Jetbrains TeamCity 简介

    目录 安装 Windows下安装 Docker下安装 使用TeamCity 初始化 配置数据库 新建项目 设置构建步骤 构建项目 测试项目 自动构建 邮件通知 大名鼎鼎的Intellij IDEA大家 ...

  9. java 持续集成工具_Jenkins集成式项目控件下载

    Jenkins是一款基于Java开发的持续集成工具,它是一个开源软件项目,旨在提供一个开放易用的软件平台,使软件的持续集成变成可能, 主要可用于持续.自动地构建/测试软件项目,如CruiseContr ...

最新文章

  1. 回归算法分类,常用回归算法解析
  2. cocos2d-x 2.X for Android中需要使用OpenGL ES 2.0
  3. Python3 统计 ftp 文件个数和大小
  4. linux入门(二)
  5. RNA干扰各种方法优缺点简介?
  6. 类型缩放Google map 地图类型
  7. instancing render
  8. 音频插件组合:Arturia Prophet V3 for Mac
  9. Eclipse用法和技巧十七:覆盖父类方法
  10. Java二叉查找树最简单实现
  11. JWT实现加密用户信息及信息验证
  12. python const char_python C 扩展(转载)
  13. 天正自定义填充图案怎么添加_cad里怎么增加自定义填充图案
  14. 技术胖--前端学习html5表单美化部分笔记
  15. 数据字典的一个简单案例
  16. 直播系统源代码,快速实现改变图片尺寸
  17. 医学统计学傻瓜教程(2019版)*
  18. php ckfinder 无效请求.,解决nginx和php使用ckfinder无法上传大文件的问题
  19. 【Java】电报 Telegram messenger for Android
  20. vue实现头部吸顶描点

热门文章

  1. 揭秘Alltesting众测平台
  2. Spark介绍系列01_李孟_新浪博客
  3. 信管网 系统集成经验分享
  4. html广告框,给WordPress首页添加简单广告框弹窗两种方法实现代码+插件
  5. 113资讯网:最近在玩一个4414站长论坛,可以发帖赚钱的站长论坛!
  6. lattice的HNP问题学习
  7. 打算进入可视化前端开发了
  8. 计算机中丢失cv110,msvcp110.dll一键修复
  9. 微信小程序实现多个页面
  10. Python对音频进行测试及频谱分析