持续集成最佳实战
html
jenkins实现持续集成、自动测试、持续部署的超级引擎,支持自定义工具集、多种交付通道。java
yum install java-1.8.0-openjdk java-1.8.0-openjdk-devel 下载地址 https://pkg.jenkins.io/redhat-stable/ RPM安装 rpm –ivh jenkins-2.32.3-1.1.noarch.rpm service jenkins start ckconfig Jenkins on
/var/lib/jenkins 主目录 /etc/init.d/jenkins 启动文件 /var/cache/Jenkins 程序文件 /var/log/Jenkins 日志文件 修改/etc/init.d/Jenkins 将用户修改成root,能够调用root工具 106行,113行 修改启动端口85行,$JENKINS_PORT systemctl daemon-reload service jenkins restart 工做目录设置 Maven项目配置 设置系统JDK ANT MAVEN Jenkins Location 邮件通知 Configure Global Security
调试模式启动:(这里要说的)node
java -jar jenkins.jar - 指定参数启动 /usr/local/jdk_8u25/bin/java -Dhudson.model.DownloadService.noSignatureCheck=true -Djava.awt.headless=true -DJENKINS_HOME=/log/data/jenkins -jar /log/jenkins_war/jenkins.war --logfile=/var/log/jenkins/jenkins.log --httpPort=8080 --httpListenAddress=192.168.10.1 --ajp13Port=-1 --debug=5 --handlerCountMax=100 --handlerCountMaxIdle=20
工做目录:git
/root/.jenkins/workspace/
如构建java-helloword项目github
/root/.jenkins/workspace/java-helloword/
默认的插件
web
经常使用的插件
docker
其次手动安装pipeline插件
json
更换插件镜像
所有镜像
http://mirrors.jenkins-ci.org/status.html
更换镜像
http://updates.jenkins-ci.org/update-center.json
https://mirrors.tuna.tsinghua.edu.cn/
http://mirror.esuni.jp/jenkins/updates/update-center.json
https://mirrors.tuna.tsinghua.edu.cn/jenkins/updates/update-center.jsonless
更新: 若是安装不上插件(我发现最新的war lts包) 能够先java -jar jenkins.war 而后停下
改为
https://mirrors.tuna.tsinghua.edu.cn/jenkins/updates/update-center.json工具
插件目录须要备份
解压备份plugin.tar.gz mv plugins /var/lib/jenkins/ chown -R jenkins.jenkins plugins/ service jenkins restart
mvn安装和阿里云源配置参考: https://github.com/lannyMa/java-helloword
cd /usr/local/src/ git clone https://github.com/lannyMa/java-helloword.git cd java-helloworld mvn clean mvn package cd target java -jar testweb-v1.0.jar
mvn安装和阿里云源配置参考: https://github.com/lannyMa/java-helloword
安装好jenkins后,直接开始新建项目:(默认你已安装pipline插件)
新建一个pipeline项目
配置pipeline
stage 'prepare' node{sh "mvn -v" } node{ git "https://github.com/lannyMa/java-helloword.git" state: 'clean' sh 'mvn clean' stage 'package' sh 'mvn package' stage 'test' sh 'java -jar target/testweb-v1.0.jar' }
构建
构建完毕!!!
如下是之前整理的一些jenkins目录细节,我的以为不必细究了.
咱们主要关注这些
选择lts版.
发现lts版的http://updates.jenkins-ci.org/update-center.json这个插件源能够更新插件,每周更新版的那个却无法更新,很蛋疼.
参考: https://github.com/jenkinsci/docker/blob/master/README.md
But if you want to attach build slave servers through JNLP (Java Web Start): make sure you map the port: -p 50000:50000 - which will be used when you connect a slave agent.
8080是webui
50000是jnlp协议slave来通信的.
docker run -d -u root \ -p 8080:8080 \ -v /etc/localtime:/etc/localtime:ro \ --restart=always \ -v /var/run/docker.sock:/var/run/docker.sock \ -v $(which docker):/bin/docker \ -v /var/jenkins_home:/var/jenkins_home \ --name=jenkins \ jenkins
建立1个job至关于建立1个类,每次构建至关于一次类的实例化.
- 建立jobs - 当即构建 - 查看jenkins目录 - jenkin启动后目录文件结构: 通常 /var/jenkins_home 或者/home/jenkins 或者 /root/.jenkins - 主要有jobs(存放jobs的配置以及每次构建结果) plugin workspace文件夹 - 进入jobs - 查看jobs的配置文件 - 查看plugin目录 - 每一个插件1个文件1个目录
制做最简单的用于jenkins测试的基于mvn的war包:
http://www.cnblogs.com/iiiiher/p/7943097.html
https://github.com/lannyMa/trucks/tree/master