幾天前同事回報,他 merge 完 push 之後 Jenkins 為何沒有建置? 我目前所在的公司所有原始碼是湊在一起的,但是每一個建置作業又只需要建置某一個專案及其相依的專案,所以除了使用 Sparse Checkout paths 之外還搭配 Polling ignores commits in certain paths 來讓建置作業能夠控制在需要建置時建置,所以這問題肯定出在這兩個地方。
[料理佳餚] 讓 Jenkins 在對 GitHub 執行 git pull 指令時自動帶上 SSH Keys
有一些專案的建置作業中,某些步驟是需要對 Git Repository 做操作的,比如說在一切測試都通過之後,發行一個可執行的版本並 commit,然後 push 到待上線的 Git Repository,這時候賦予給 CI 的 Git 帳號就至少要有 Write 的權限,並且執行需要授權的操作時,自動帶上認證。
[小菜一碟] 想不到 Jenkins Git Plugin 還有一招 Sparse Checkout paths
當我們的 Git Repository 只有一包的時候,而我們又想要讓 Jenkins 只 Pull 某個資料夾底下的檔案時,Sparse Checkout paths
這個 Git Plugin 的附加行為可以幫我們辦到這件事。
[料理佳餚] Jenkins 依據 Git 特定的 committed message 或 changed path 來 trigger 建置作業
有時候我們不需要每次 commit 都執行 CI 的建置作業,例如:更換網站的 Logo、更新靜態頁面的 Wording,這次要介紹兩種方式,都是可以用來指定在特定條件之下才 trigger 建置作業的方式,一種是根據特定的 committed message,另一種是根據特定的 changed path。
[廚餘回收] Jenkins 在 Windows 的安裝路徑最好不要含有空格
會有這個結論的起因是 Jenkins 有一個 Ruby Runtime Plugin,有很多 Plugin 會相依於它,雖然它最近一次更新的日期是在 2013 年 6 月 5 日,但依舊每個月都會有一萬多個安裝,而且跑在新版本的 Jenkins 也沒什麼問題(目前最新版本是 2.60.3),但是在 Windows 環境底下要安裝它就會有可怕的事情發生。
[廚餘回收] 解決 Jenkins 內嵌 HTML Report 遇到 Content Security Policy 的問題
感謝天橋下的說書人先踩了雷「Pickles 與 Jenkins 的結合」。
Jenkins 的 HTML Publisher Plugin 可以方便我們瀏覽 HTML 格式的 Report,不過自從 Jenkins 1.641 開始遵循 Content Security Policy 後,HTML Report 如果有內含 CSS、JavaScript,它可能就不 work 了。
- 1