我正致力於改進我們當前的構建系統,以實現非常大的.Net項目。把它放在上下文中 - 這個項目有178個Visual Studio Solutions和超過800個csproj文件。Gitlab-CI:只在特定文件夾更新時觸發構建
我們目前正在使用TeamCity,但隨着團隊數量的增加,它變得非常混亂,並且變得非常難以維護。在某個時候,我們遷移到了Gitlab(在我到達之前),並且我正在嘗試使用Gitlab-CI獲得可行的解決方案。
我已經設法構建,測試和打包,使用Gitlab-CI的每個組件,但它並不漂亮,因爲一切都在1 Job中完成。我們現在決定這樣做,因爲如果我們構建單個組件,管理Gitlab-CI中的所有工件非常困難(並且很慢)。但我會留下的另一個SO問題... ;-)
我今天的問題是如何配置我的.gitlab-ci.yml文件只執行一項工作,如果該特定文件夾的變化?
考慮這個(簡體)目錄樹: . ├── Build ├── Config ├── Core ├── Database ├── Services └── Websites
如果更改在合併到主影響核心或配置,那麼整個樹應當建立和測試,因爲一切都取決於這些組件。 但是,如果對服務進行更改,則不需要構建和測試服務以外的任何其他服務。
同樣,也許這太複雜了,如果數據庫發生變化,那麼只能建立數據庫和服務。
你使用專用支路的成分? – Martin
@mgansler我假設你是指git分支?在這個階段沒有 - 所有的東西都坐在一個倉庫裏。通常情況下,一個團隊將分出主要的回購,然後將他們的更改合併回去。 –
是的,我的意思是git分支。如果你要爲每個組件引入一個專用分支,你可以使用gitlab-ci的'only':http://docs.gitlab.com/ce/ci/yaml/README.html#only-and-except – Martin