通过DaoCloud配置Coding平台的持续集成服务

什么是持续集成

持续集成是一种软件开发实践,即团队开发成员经常集成它们的工作,通过每个成员每天至少集成一次,也就意味着每天可能会发生多次集成。 每次集成都通过自动化的构建(包括编译,发布,自动化测试)来验证,从而尽早地发现集成错误。

在Hexo博客中,运用持续集成可以让你在每一台设备上都能够更新博客,拜托本地hexo的束缚。

需要用到的:http://Coding.nethttp://Coding.net之于Github的好处在于他有手机客户端,满足你在手机上写博客的想法。; Daocloud; git; hexo; node.js

环境搭建

安装git

访问 git 下载并且安装适合你的操作系统的版本

安装node.js

访问 node.js 下载并且安装适合你的操作系统的版本

安装hexo

hexo

连接http://Coding.net

http://Coding.net上新建一个私有项目,以下我们称之为博客源项目,将你在本地安装的hexo推送到该项目的master分支。

为什么必须使用私有项目,因为稍后我们需要在这个项目内上传私钥。

配置DaoCloud

创建项目

新建项目时,在设置代码源处选择http://Coding.net,并且选择你所创建的博客源项目,开启持续集成,执行环境选择国外,发布应用镜像选择镜像仓库。

配置

  • 配置持续构建流程
    在hexo博客文件夹的根目录下新建一个名为daocloud.yml的文件,文件名全部小写,写入以下内容:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
version: "2.0"
test:
image: daocloud.io/starkchen/blog_ci:latest #填写镜像地址
install:
- npm install
before_script:
- mkdir ~/.ssh
- mv .daocloud/id_rsa ~/.ssh/id_rsa
- mv .daocloud/ssh_config ~/.ssh/config
- chmod 600 ~/.ssh/id_rsa
- chmod 600 ~/.ssh/config
- eval $(ssh-agent)
- ssh-add ~/.ssh/id_rsa
- rm -rf .daocloud
# 配置git全局的用户名和邮件地址
- git config --global user.name "your-username"
- git config --global user.email "your-email-address"
script:
- hexo clean
- hexo g
- hexo d
# 删除私钥文件夹
- rm -rf ~/.ssh/

build:
image:
dockerfile_path: Dockerfile
build_dir: /
cache: true

镜像地址:DaoCloud控制台>镜像仓库>镜像 找到

  • 配置git仓库

在.gitignore文件中插入以下字段

1
2
3
4
5
.DS_Store
Thumbs.db
*.log
public/
.deploy*/
  • 配置容器
    在根目录下新建Dockerfile文件,注意此文件名称需要区分大小写。
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
FROM node:slim
MAINTAINER your_name <your_email>
# instal basic tool
RUN apt-get update && apt-get install -y git ssh-client ca-certificates --no-install-recommends && rm -r /var/lib/apt/lists/*
# set time zone
RUN echo "Asia/Shanghai" > /etc/timezone && dpkg-reconfigure -f noninteractive tzdata
RUN npm install
# install hexo
RUN npm install hexo-cli -g
# install hexo server
RUN npm install hexo-server
# set base dir
#RUN mkdir /hexo
# set home dir
#WORKDIR /hexo

EXPOSE 4000
#CMD ["/bin/bash"]

注意自行修改your_name和your_email字符串

  • 配置密匙
    在根目录下新建 .daocloud 目录,拷贝你的 id_rsa 进入

新建一个名为 ssh_config 的文件,写入以下内容

1
2
StrictHostKeyChecking no
UserKnownHostsFile /dev/null

将所有更改提交到git仓库

完成

接下来的行为将由DaoCloud自动完成,不久后你就能看到博客已经部署好了。