持續集成最佳實戰
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