已經(jīng)太監(jiān)蒙畴,補(bǔ)充一下。
講述jenkins里邊遇到過(guò)的一些問(wèn)題呜象,怕是以后用不上或者記不得了哦膳凝。。
第一條: jenkins以服務(wù)啟動(dòng)和以war包啟動(dòng)的差異恭陡,可恨蹬音,當(dāng)時(shí)沒(méi)有記錄下來(lái),但是是有差異的休玩;
第二條: jenkins remote shell著淆,我在公司需要連遠(yuǎn)程ssh去部署版本等操作,發(fā)現(xiàn)我雖然使用的root賬戶拴疤,但是環(huán)境變量啥的都是空的永部,所以我的解決辦法是需要什么export什么。
第三條: nohup &符號(hào)問(wèn)題呐矾,因?yàn)槟沁厗?dòng)sh腳本的時(shí)候苔埋,用nohup的方式啟動(dòng),導(dǎo)致程序會(huì)被殺死蜒犯,有一段dont kill me的指令组橄,防止jenkins殺死衍生出的程序。然后再到sh腳本補(bǔ)上一句話echo "done"
因?yàn)殡m然&符號(hào)的意思是不需要再做操作罚随,程序會(huì)自動(dòng)在后臺(tái)運(yùn)行玉工,但是還是需要回車一下的,而我這里用echo代替了回車淘菩。
第四條: 公司是用node.js里的babel模塊配合flask的webassets對(duì)js進(jìn)行壓縮打包遵班,如果打包的py文件不在當(dāng)前目錄下執(zhí)行,打包會(huì)報(bào)錯(cuò)潮改,這個(gè)忽略费奸,只有我們公司會(huì)遇到這樣的情況。
第五條:這個(gè)是重點(diǎn)进陡,我們公司的code版本是依賴日期變化的,比如這周可能版本號(hào)是20170601微服,下周就變成了20170608了趾疚,所以在jenkins的svn url地址設(shè)置里邊缨历,需要改動(dòng)這個(gè)地址。
但是問(wèn)題來(lái)了糙麦,不可能每周我都去手動(dòng)修改一次地址辛孵,萬(wàn)一一周發(fā)3個(gè)版本呢?于是我發(fā)現(xiàn)一個(gè)神奇的東西赡磅,可以通過(guò)jenkins的job目錄里的xml配置文件來(lái)修改url的地址魄缚,我是不是很棒棒!焚廊!
第六條: 如果是服務(wù)形式的還好冶匹,直接重啟,配置會(huì)生效咆瘟,如果是war包的話就只能殺掉命令窗口嚼隘,再開(kāi)一次了。我這里是用Python做了個(gè)exe袒餐,然后殺掉這個(gè)exe再打開(kāi)就行了飞蛹。