一殉了、gitlab的分支
在公司的日常工作生活中互躬,項(xiàng)目確定后播赁,會(huì)構(gòu)建一條主分支,該分支為開發(fā)人員開發(fā)完成并測(cè)試運(yùn)行正常的代碼程序吼渡,但是容为,開發(fā)在開發(fā)過(guò)程中,不會(huì)立即將寫好的代碼程序立即合并到主分支上寺酪,所以需要在主分支之上生成一條開發(fā)分支或者說(shuō)是測(cè)試分支坎背,以供開發(fā)寫好代碼后,及時(shí)構(gòu)建程序寄雀,查看程序是否按照要求運(yùn)行得滤。經(jīng)過(guò)不斷地測(cè)試及調(diào)試,確定寫好的代碼沒問題后盒犹,最終合并到主分支上懂更,升級(jí)程序版本。
1阿趁、gitlab新建分支
2膜蛔、jenkins新建開發(fā)分支任務(wù)
1》安裝插件
jenkins插件安裝成功后,先修改配置脖阵,再重啟jenkins程序
注:老版本Jenkins的CSRF保護(hù)功能只需要在 系統(tǒng)管理 > 全局安全配置 中便可進(jìn)行打開或者關(guān)閉皂股。讓人頭疼的是較高版本的Jenkins竟然在管理頁(yè)面關(guān)閉不了CSRF在Jenkins啟動(dòng)前加入相關(guān)取消保護(hù)的參數(shù)配置后啟動(dòng)Jenkins,即可關(guān)閉CSRF命黔。
vim /usr/lib/systemd/system/jenkins.service
Environment="JAVA_OPTS=-Djava.awt.headless=true -Dhudson.security.csrf.GlobalCrumbIssuerConfiguration.DISABLE_CSRF_PROTECTION=true"
systemctl daemon-reload
systemctl restart jenkins
2》新建job
openssl rand -hex 12 #生成隨機(jī)字符串
3》gitlab配置鉤子
鉤子中的url為jenkins中構(gòu)建觸發(fā)器使用的url呜呐,點(diǎn)擊測(cè)試,測(cè)試界面會(huì)有返回值悍募,返回201正常蘑辑,如果返回403等,注意修改跨站請(qǐng)求關(guān)閉坠宴,授權(quán)策略修改為登錄用戶可以做任何事洋魂。
4》拉取代碼驗(yàn)證觸發(fā)器
git clone -b develop http://192.168.43.111/linux43/web1.git #拉取develop分支的代碼,b指定分支
cat index.html
linux43 v1 version
linux43 v2 version
注:
root@ubuntu20:/mnt/web1# git config --global user.email "1194153883@qq.com"
root@ubuntu20:/mnt/web1# git config --global user.name "user1"
root@ubuntu20:/mnt/web1# git commit -m "v2"
[develop 4c0d56f] v2
1 file changed, 2 insertions(+), 1 deletion(-)
root@ubuntu20:/mnt/web1# git push
Username for 'http://192.168.43.111': user1
Password for 'http://user1@192.168.43.111':
Enumerating objects: 5, done.
Counting objects: 100% (5/5), done.
Writing objects: 100% (3/3), 254 bytes | 254.00 KiB/s, done.
Total 3 (delta 0), reused 0 (delta 0)
remote:
remote: To create a merge request for develop, visit:
remote: http://192.168.43.111/linux43/web1/merge_requests/new?merge_request%5Bsource_branch%5D=develop
remote:
To http://192.168.43.111/linux43/web1.git
3489954..4c0d56f develop -> develop
gitlab克隆的是哪個(gè)分支,提交的時(shí)候就提交到哪個(gè)分支上
3副砍、構(gòu)建后項(xiàng)目關(guān)聯(lián)
二衔肢、Jenkins分布式
在眾多Job 的場(chǎng)景下,單臺(tái) jenkins master 同時(shí)執(zhí)行代碼clone豁翎、編譯角骤、打包及構(gòu)建其性能可能會(huì)出現(xiàn)瓶頸 從而會(huì)影響代碼部署效率,影響 jenkins 官方提供了 jenkins 分布式構(gòu)建心剥, 將眾多 job 分散運(yùn)行到不同的 jenkins slave 節(jié)點(diǎn)邦尊, 大幅提高并行 job 的處理能力。
1优烧、配置slave節(jié)點(diǎn)的java環(huán)境
Slave 服務(wù)器創(chuàng)建工作目錄 如果 slave 需要執(zhí)行編譯 job 蝉揍,則也需要配置 java 環(huán)境 并且安裝 git、svn匙隔、maven 等 與 master 相同的基礎(chǔ)運(yùn)行環(huán)境疑苫,另外也要?jiǎng)?chuàng)建 與 master 相同的數(shù)據(jù) 目錄 ,因?yàn)槟_本中調(diào)用的路徑只有相對(duì)一 master 的一個(gè)路徑纷责,此路徑在master 與各 node 節(jié)點(diǎn)必須保持一致。
mkdir -p /var/lib/jenkins #創(chuàng)建工作目錄
chown jenkins.jenkins /var/lib/jenkins/ -R
1》配置jdk環(huán)境
tar xf jdk-8u212-linux-x64.tar.gz #解壓jdk文件
ln -sv /usr/local/src/jdk1.8.0_212/ /usr/local/jdk #配置軟鏈接撼短,方便之后jdk版本升級(jí)
ln -sv /usr/local/src/jdk1.8.0_212/bin/java /usr/bin #之后jenkins需要在/usr/bin中使用java命令
2》修改環(huán)境變量
vim /etc/profile #修改環(huán)境變量
export HISTTIMEFORMAT="%F %T `whoami` " #修改history命令的輸出再膳,添加時(shí)間和用戶
export export LANG="en_US.utf-8"
export JAVA_HOME=/usr/local/jdk
export CLASSPATH=.:$JAVA_HOME/jre/lib/rt.jar:$JAVA_HOME/lib/dt.jar:$JAVA_HOME/lib/tools.jar
export PATH=$PATH:$JAVA_HOME/bin
source /etc/profile #加載環(huán)境變量
2、添加slava節(jié)點(diǎn)
Jenkins--》系統(tǒng)管理--》節(jié)點(diǎn)管理--》新建節(jié)點(diǎn)
新建的節(jié)點(diǎn)時(shí)間要和主節(jié)點(diǎn)相同
報(bào)錯(cuò)
報(bào)錯(cuò)一:
未找到/var/lib/jenkins/jdk/bin/java命令曲横,可以修改軟鏈接指到該路徑下
報(bào)錯(cuò)二:
jenkins賬戶對(duì)/var/lib/jenkins目錄沒有權(quán)限喂柒,修改權(quán)限
chown jenkins.jenkins /var/lib/jenkins/ -R
節(jié)點(diǎn)添加成功