搭建 Jenkins 的前提要求比:
- 有一个服务器;
- 常用的 Linux 命令知识,这里推荐一个 阮一峰 - Bash 脚本教程;
- 服务器已经转好了 Jenkins。
一、创建一个Jenkins 的项目
一般来说刚开始我们会选用一个自由风格的软件,里面的配置比较自由。
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传
二、配置打包脚本
创建好项目以后,直接进到构建的地方。
这里直接配置服务器的打包脚本:
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传
这种办法比价简单,不需要配置其他的东西,但是这样需要在项目里面配置。
就按照截图里看到的,我的项目代码是放在服务器的:working_code
下面,并且项目里面还有一个 deploy/jenkins-ci.sh
的文件,这个文件放置的是服务器的打包代码。这里就不放出来了,大家可以自己根据自己的情况自己写!
所以要是打包脚本也准备好的话,到这里也就算是所有工作就完成。但是我在自己学习的过程,还尝试了其他的方式,需要到了其他的问题,要是感兴趣的话,可以继续看!
三、Jenkins 配置 GitHub 打包
在配置 Jenkins 拉取 Github 代码的时候,需要配置 ssh key 获取代码的时候,感觉遇到了很多问题。
主要就是:ssh key 怎么生成;在Jenkins 和 Github 上怎么去配置,弄了很久。
下面是我参考的解决方案:
还有一个卡了很久的事情:
关于 Jenkins 不会继承环境变量的问题,需要把所有Jenkins 用到的环境变量到放到 /etc/profile
文件里面。
否则总是会报命令找不到的错误。
这个问题卡了我很久,最开始遇到的时候,老是报错说 node
的命令找不到,但是看服务器上又是存在这个命令的。
所以当时我就纳闷,找了很久我才知道:Jenkins 不会继承Linux 的所有权限。这就导致了很多命令在 Jenkins 里面找不到。
为了解决这个问题,需要在执行命令前,有可能用到的命令都配置到: /etc/profile
文件中,并且在打包代码起前。
先:source /etc/profile
一下!
总结
做了这个自动化部署,感觉知道大体的方向,但是还是遇到了很多问题。中间一边解决一边前进,还是学到很多东西的!