使用Jenkins自动部署博客

发表于:2017-12-26 10:43

字体: | 上一篇 | 下一篇 | 我要投稿

 作者:Kingname    来源:青南的小世界

  继续往下拉,在构建触发器单击增加构建步骤,在弹出的下拉菜单中选择Execute shell。勾选GitHub hook trigger for GITScm polling。在Execute shell对应的输入框中输入命令,将当前目录下的所有文件和文件夹全部复制到/home/bexercise/kingname.github.io/文件夹下。如下图所示。
  其中,文件夹/home/bexercise/kingname.GitHub.io/里面的内容如下图所示。这是Hexo生成的HTML文件和资源文件。
  这里需要解释一下这一条命令:
  cp -r ./* /home/bexercise/kingname.GitHub.io/
  其中的cp -r表示复制文件和文件夹。./表示当前目录。./*表示当前目录下面的所有内容。因此整条命令的意思是把当前目录下的所有内容全部复制到/home/bexercise/kingname.GitHub.io/下,并且如果文件名相同,就会直接覆盖。需要注意的是,kingname.GitHub.io这仅仅是一个普通的文件夹而已,别看它的名字长得像个网址,但其实它只是一个名字比较怪的普通文件夹而已,没有什么特殊的意义。
  这个项目在构建的时候,它会自动从GitHub上面对应Repo所有的文件拉取到当前的文件夹下,所以执行了这一条复制命令以后,博客HTML文件自然就被复制到了网站的根目录下。
  修改权限
  由于Jenkins在安装的时候,会自动创建一个名为jenkins的普通账号,这个账号没有管理员权限。jenkins执行命令的时候,它也会使用这个账号。但是由于kingname.GitHub.io这个文件夹是用户bexercise创建的,所以jenkins账号默认是没有权限读写这个文件夹的。现在需要给jenkins账号授予权限。使用bexercise这个账号登录服务器,使用以下命令给jenkins赋予权限,让它可以读写kingname.GitHub.io文件夹:
  sudo chown -R jenkins:jenkins /home/bexercise/kingname.GitHub.io
  执行完成这一行命令以后,jenkins才可以把其他地方的文件复制到这个文件夹里面。
  使用方法
  没有什么复杂的使用方法,在Hexo中,执行命令hexo d就可以把本地生成好的HTML文件提交到GitHub中。然后打开浏览器,打开博客,发现新的文章已经出现在首页了。
  在Jenkins项目的执行历史里面,也可以看到它被自动触发而产生的历史记录。如下图所示。
  举一反三
  由于Jenkins可以运行Shell命令,进行单元测试本质上也是运行一条命令,那这不就可以实现自动进行单元测试了吗?那么如果把Shell命令改成运行一个Python脚本,那不就可以做任何事情了吗?如果Python脚本里面写了发送邮件的代码,那不就实现了你一提交代码,其他人就收到邮件了吗?

上文内容不用于商业目的,如涉及知识产权问题,请权利人联系博为峰小编(021-64471599-8017),我们将立即处理。
22/2<12
《2023软件测试行业现状调查报告》独家发布~

关注51Testing

联系我们

快捷面板 站点地图 联系我们 广告服务 关于我们 站长统计 发展历程

法律顾问:上海兰迪律师事务所 项棋律师
版权所有 上海博为峰软件技术股份有限公司 Copyright©51testing.com 2003-2024
投诉及意见反馈:webmaster@51testing.com; 业务联系:service@51testing.com 021-64471599-8017

沪ICP备05003035号

沪公网安备 31010102002173号