精通Jenkins Pipeline — part1 (Groovy 以及Jenkinsfile) | Jenkins Scripted Pipeline
Jenkins使用過水電工Travis-CI的朋友們,應該很多都試過翹鬍子Jenkins。不過筆者猜應該大多數的朋友都是使用Jenkins的FreeStyleproject。雖然FreeStyleproject可以讓你客製化任何的ShellScript來執行你想要的腳本進行測試,但其腳本會依賴Jenkinsnode上的環境來執行,Jenkinsnode上的任何環境改變都可能影響到你的buildjob的狀況,譬如說,系統套件的升級,工具路徑的修改,不同的Job間互相的影響…等等。此時,最好的做法是將每個BuildJob都用VM或Container做Isolation,確保每次執行建置的工作環境都是一樣的。TravisCI的做法是,為...
Jenkins使用過水電工 Travis-CI 的朋友們,應該很多都試過翹鬍子 Jenkins。不過筆者猜應該大多數的朋友都是使用 Jenkins 的 Free Style project。
雖然 Free Style project 可以讓你客製化任何的 Shell Script 來執行你想要的腳本進行測試,但其腳本會依賴 Jenkins node 上的環境來執行,Jenkins node 上的任何環境改變都可能影響到你的 build job 的狀況,譬如說,系統套件的升級,工具路徑的修改,不同的 Job 間互相的影響…等等。
此時,最好的做法是將每個 Build Job 都用 VM 或 Container 做 Isolation,確保每次執行建置的工作環境都是一樣的。
Travis CI 的做法是,為了避免給個 Build 互相影響,會為每一個建置都開一台全新的 GCE Instance,即使你的測試是在 Container mode 下執行,都會是全新的 VM 環境。