Travis 持续集成自动发布博客文章

阅读:431 2019-03-19 15:02:08 来源:新网

上一篇《hexo搭建个人博客》,最终可以在本机运行$hexoserver-p8000,在浏览器中输入localhost:8000进行访问。这显然不是我们想要的,我们期待:

在往下读之前,确保你的机器上安装了git,不熟悉git的看这里=>《廖雪峰-git教程》。也确保你知道github是个啥,不知道的去点一点。

注册github账号

https://github.com/官网右上角注册。

我这里已经注册过了,用户名是dkvirus。

新建仓库

这个仓库的名称和你github用户名有关。比如我github用户名是dkvirus,我仓库的名称就只能是dkvirus.github.io。

克隆代码到本地

创建index.html文件

把index.html提交到github上

看效果

在浏览器中输入你的项目名称username.github.io即可看到你刚才写的index.html页面。

总结

username.github.io这个仓库也叫做githubpages,里面可以放静态页面,github这个网站自动为你部署,起到了web服务器的作用。(不理解web服务器的看这里=>《图解web服务器》)

而hexo可以通过$hexogenerate自动生成静态页面(在public目录下),将public目录下所有文件放在githubpages里,不就可以通过域名访问了吗?这是思路。

到这里为止,我们第一个期待的事情已经有思路了。在浏览器中通过域名可以看到自己的博客。

在之前的博客里我有讨论过持续集成这个概念,我总结就是:你只负责开发,其它的事让程序去做。

第一步:我们希望有个东东可以帮助我们监控github上的代码,只要代码变化就去执行程序;

第二步:程序具体做什么事情:执行$hexogenerate指令生成博客的静态资源public,自动将public目录下的子文件复制到username.github.io仓库中。

在username.github.io仓库中建两个分支:master分支和develop分支,master分支存放静态资源,develop存放hexo博客源代码。如下:

我们在develop分支写文章,每当提交develop分支代码时,我们希望有个东东可以帮我们执行$hexogenerate生成public目录,并将public的子文件,复制到master分支上,这样在username.github.io中就可以查看我们的博客了。

travis可以帮助监控github代码变化,它是一个网站:travisci官网,点击进入,使用github账号进行登录。可以看到下面这个页面。

第一步:监控github仓库的页面

这个页面就是你要监控哪个github仓库的页面。第一次进来由于没有选择要监控的仓库,矩形框应该都是空白的(这里有是因为我之前有添加过),点击椭圆框跳转另一个页面去选择要监控哪些github仓库。点击跳转页面如下:

第二步:选择要监控的仓库

在这个页面中,想要监控哪个仓库,就点击开关按钮。如果下方没有仓库,点击右上角按钮可以实时同步github仓库。选择完成后点击后面的链接进入前一个页面。

第三步:进行相应配置

这里要进行相关配置,上图中数字2按要求配置。

数字3配置环境变量。这个的目的是:travis网站之后要将hexo生成的静态资源复制到github上,得有权限才行,这里就配置github给它的权限token。token怎么生成,看第四步,待会记得回来填值。

第四步:github生成token

在github上找到personalaccesstokens页面,具体路径看下面。

点击generatenewtoken出现下方页面,勾选相应权限。

最终生成一串数字,回到第三步,有个环境变量gh_token的值还没填,把这串数字放进去。

travis监控到github仓库代码变化后需要执行程序。在项目根目录下创建.travis.yml文件,填写要做的事。travis监控到代码变化就会去项目根目录下找这个文件,找到就做事,找不到就啥也不做。

切换代码到develop分支,添加.travis.yml文件,复制下面内容。

#运行环境,travis会自动提供这个环境language:node_jsnode_js:stable#s:buildlifecycle#安装依赖包install:-npminstall#生成博客静态资源script:-hexog#将静态资源推送到master分支上after_script:#找到静态资源-cd./public-gitinit#user.name和user.email让travis能登录你的github-gitconfiguser.name"dkvirus"-gitconfiguser.email"xxxxxx@qq.com"-gitadd.-gitcommit-m"docs:updatearticles"#gh_token为你的github允许travis访问生成的凭证#gh_ref告诉travis往哪个仓库推送代码,具体值下面配置-gitpush--force--quiet"https://${gh_token}@${gh_ref}"master:master#e:buildlifecyclebranches:only:#设置监控分支,当develop分支代码变化时,执行这个程序-developenv:global:#定义往哪个仓库推送代码,注意事项见下面-gh_ref:github.com/dkvirus/dkvirus.github.io.git配置文件做了什么事script:生成静态资源after_script:将静态资源推送到username.github.io仓库的master分支你需要修改的地方

gitconfiguser.name:你登录github时的用户名

gitconfiguser.email:你登录github时的邮箱地址

name和email能让travis登录你的github。

gh_ref:github.com/dkvirus/dkvirus.github.io.git

gh_ref能让travis知道往哪个仓库推送代码。

gh_ref注意事项:

地址为http地址,并且去掉协议名称,如:https://github.com/dkvirus/dkvirus.github.io.git,这里只需填写:github.com/dkvirus/dkvirus.github.io.git。

将develop分支推送到github上,过几分钟查看master分支是否成功生成静态资源。

如果你不满意github为你分配的域名dkvirus.github.io,并且拥有自己的域名tmd.dkvirus.com,可以接着往下看如何绑定自己的域名。

将你自己的域名与github域名绑定在一起。这样当你访问自己域名tmd.dkvirus.com,实际上看的是dkvirus.github.io的页面。

我是在腾讯云上购买过云主机,上面免费提供域名解析,记录如下:

github上绑定域名的目的是当你访问dkvirus.github.io时,浏览器地址栏会自动跳转到tmd.dkvirus.com。

在hexo源码source目录下新建cname文件(没有后缀)。输入你自己的域名:tmd.dkvirus.com。

有的博文里会让你直接在github里改,事实上cname文件被提交到github上之后,文件内容tmd.dkvirus.com会被自动填写到这里。使用cname文件的好处是如果域名有变化,只需要修改本地文件,而不需要登录github网站手动修改。

上述操作完成后,输入你自己的域名tmd.dkvirus.com即可看到你的博客。

上一篇: Kubernetes的Service
相关文章
{{ v.title }}
{{ v.description||(cleanHtml(v.content)).substr(0,100)+'···' }}
你可能感兴趣
推荐阅读 更多>
推荐商标

{{ v.name }}

{{ v.cls }}类

立即购买 联系客服