Jenkins奇技淫巧 — 安裝篇(mac)
Jenkins奇技淫巧 — 配置篇
Jenkins奇技淫巧 — 安全篇
Jenkins奇技淫巧 — 發(fā)送郵件篇
Jenkins奇技淫巧 — 全局變量篇
Jenkins奇技淫巧 — 新建任務(wù)篇
Jenkins奇技淫巧 — 插件篇
Jenkins奇技淫巧 — 問題篇
Jenkins奇技淫巧 — 命令篇
Jenkins奇技淫巧 — 環(huán)境配置篇(Android自動(dòng)化構(gòu)建)
Jenkins奇技淫巧 — 參數(shù)化構(gòu)建篇(Android自動(dòng)化構(gòu)建)
Jenkins奇技淫巧 — 第一次實(shí)戰(zhàn)篇(Android自動(dòng)化構(gòu)建)
Jenkins奇技淫巧 — Python打包篇(Android自動(dòng)化構(gòu)建)
Jenkins奇技淫巧 — Python發(fā)送郵件和上傳蒲公英(Android自動(dòng)化構(gòu)建)
Jenkins奇技淫巧 — 樂固,多渠道打包篇(Android自動(dòng)化構(gòu)建)
Jenkins奇技淫巧 — 節(jié)點(diǎn)管理篇
Jenkins奇技淫巧 — 優(yōu)秀文章篇
mac由于用戶權(quán)限導(dǎo)致的構(gòu)建失敗問題
-
找不到SDK路徑
檢查Jenkins工作空間桂躏,自己clone下來的Android工程是否存在"local.properties"文件摩幔,因?yàn)檫@里面有sdk,ndk的配置路徑驹暑。同時(shí)保證這里面的路徑在你的電腦能找到。
如果存在"local.properties"文件辨赐,但是需要在構(gòu)建過程改變"local.properties"文件里所指的路徑优俘,那該怎么辦?請(qǐng)查看Jenkins奇技淫巧 — 插件篇(Text File Operations)
-
如果上面都設(shè)置好了掀序,發(fā)現(xiàn)還是有問題帆焕,這時(shí)候有可能就是mac多用戶引起的。
為什么會(huì)存在多個(gè)用戶不恭,明明我電腦只有一個(gè)用戶
在 MacOS 上使用dmg安裝包安裝完 Jenkins 之后叶雹,發(fā)了 Jenkins 自動(dòng)在系統(tǒng)里新建了一個(gè)名為jenkins的用戶。默認(rèn)的换吧,Jenkins 程序里的自動(dòng)化構(gòu)建操作都是以這個(gè)用戶身份來進(jìn)行的折晦,所以有時(shí)會(huì)出現(xiàn)一些權(quán)限問題。原因
由于你之前sdk安裝在平時(shí)登陸的用戶上沾瓦,而Jenkins自動(dòng)化構(gòu)建又是使用的jenkins用戶满着,所以就算你自定的sdk路徑正確谦炒,但是jenkins用戶是訪問不到其它用戶的目錄和配置的。-
怎么辦
解決方法就是修改 Jenkins 配置文件漓滔,把 Jenkins 運(yùn)行的默認(rèn)賬戶改成平時(shí)用的賬戶编饺。-
命令修改
停止Jenkins sudo launchctl unload /Library/LaunchDaemons/org.jenkins-ci.plist 修改Group和User <用戶名>填寫你的MacOS用戶名,不知道的可以在命令行使用whoami查看响驴,不需要尖括號(hào) sudo vim +1 +/daemon +’s/daemon/staff/’ +/daemon +’s/daemon/<用戶名> +wq org.jenkins-ci.plist 可能相應(yīng)文件夾的權(quán)限 sudo chown -R <用戶名>:staff /Users/Shared/Jenkins/ sudo chown -R <用戶名>:staff /var/log/jenkins/ 啟動(dòng)Jenkins sudo launchctl load /Library/LaunchDaemons/org.jenkins-ci.plist
如修改后不起作用透且,請(qǐng)用第二種方式,查看配置文件是否修改成功豁鲤。
-
修改配置文件
1. 停止jenkins sudo launchctl unload /Library/LaunchDaemons/org.jenkins-ci.plist 2. 修改配置文件 sudo vim /Library/LaunchDaemons/org.jenkins-ci.plist <dict> <key>GroupName</key> <string>daemon</string> 修改成自己登陸的用戶名 <key>KeepAlive</key> <key>UserName</key> <string>pengdaosong</string>修改成自己登陸的用戶名 <key>SessionCreate</key> </dict> 3. 給予權(quán)限 sudo chown -R pengdaosong:wheel /Users/Shared/Jenkins/ sudo chown -R pengdaosong:wheel /var/log/jenkins/ 4. 啟動(dòng)jenkins sudo launchctl load /Library/LaunchDaemons/org.jenkins-ci.plist
-
- 其它問題排除方法
如果上面問題解決后秽誊,發(fā)現(xiàn)還是不能成功,從控制臺(tái)日志中又不能獲得到可用的信息琳骡,這時(shí)候锅论,我們可以檢查一下自己的工程是否達(dá)到了可構(gòu)建的狀態(tài)。比如拿Android工程來說楣号,我們完全可以在工作空間的工程目錄下最易,通過命令行執(zhí)行g(shù)radlew assembleDebug命令來檢查是否可以成功構(gòu)建,如果這里都不行炫狱,那么多半是工程本身的問題藻懒。- 命令行執(zhí)行g(shù)radlew assembleDebug報(bào)錯(cuò)。在上面的問題沒有解決之前视译,這個(gè)目錄是Jenkins用戶擁有的嬉荆,所以自己電腦登陸的用戶是沒有權(quán)限限制的,所以可以用sudo來執(zhí)行酷含。
mac電腦重啟后鄙早,Jenkins無法訪問,提示連接被拒絕
在“mac由于用戶權(quán)限導(dǎo)致的構(gòu)建失敗問題”問題解決后椅亚,重啟Jenkins服務(wù)限番,發(fā)現(xiàn)不能訪問的情況,請(qǐng)先停止服務(wù)什往,修改下面文件的權(quán)限扳缕,當(dāng)然你可以先看看這些文件是否可以被訪問,如果可以别威,者不是這些文件訪問權(quán)限導(dǎo)致的問題躯舔。
修改文件權(quán)限
sudo chown -R userName /Users/Shared/Jenkins
sudo chown -R userName /var/log/jenkins
重啟Jenkins服務(wù)。
日志過大省古,設(shè)置日志級(jí)別粥庄,重啟Jenkins后,日志級(jí)別還原
首先感謝評(píng)論區(qū)提出的問題豺妓,由于我沒有遇到這個(gè)問題惜互,所以沒有太注意日志級(jí)別的設(shè)置布讹。經(jīng)過自己嘗試后發(fā)現(xiàn),當(dāng)設(shè)置日志級(jí)別后训堆,如果重啟jenkins服務(wù)描验,之前設(shè)置的日志級(jí)別會(huì)背還原。經(jīng)過查看相關(guān)資料和結(jié)合自己的推想坑鱼,很可能日志級(jí)別的設(shè)置并沒有永久被保存膘流。那么怎么辦呢,那就在每次啟動(dòng)的時(shí)候自動(dòng)設(shè)置日志級(jí)別鲁沥。
-
沒有設(shè)置前
- unbtun系統(tǒng)
- cd到/var/lib/jenkins目錄(mac的路徑在/Users/Shared/Jenkins/home下呼股,但是mac我沒有測(cè)試,因?yàn)槲襪ac的Jenkins啟動(dòng)不起來了)
- 新建 init.groovy文件画恰,文件內(nèi)容如下彭谁,可以根據(jù)自己需求更改,也可以進(jìn)行 其它設(shè)置允扇。
日志級(jí)別可以在Android工程搜索Level類缠局,可以看到具體的解釋。import java.util.logging.Level import java.util.logging.Logger Logger.getLogger("").setLevel(Level.SEVERE) Logger.getLogger("org.apache.sshd").setLevel(Level.SEVERE) Logger.getLogger("winstone").setLevel(Level.SEVERE)
- 重啟Jenkins(我是停止后重啟)
- 效果:
參考:https://qamag.net/stop-that-huge-jenkins-log/