觸發(fā)器
你可以設(shè)置一個定時器來觸發(fā)構(gòu)建,或者輪詢代碼庫直到發(fā)生變更時才構(gòu)建。
可以同時使用這兩種方法:
最常用的是輪詢Git庫,這樣每次提交都會觸發(fā)構(gòu)建。
可以觸發(fā)比持續(xù)構(gòu)建更久也更加徹底的每夜構(gòu)建。由于這些構(gòu)建發(fā)生在假定無人工作的夜晚,慢一點也關(guān)系不大。
一個上游的構(gòu)建可以觸發(fā)一個下游的構(gòu)建。
你還能讓一個任務(wù)里的成功構(gòu)建觸發(fā)另一個任務(wù)。
任務(wù)鏈和構(gòu)建流水線
能把任務(wù)串起來通常都是非常有用的。最簡單的方式是:當(dāng)?shù)谝粋€任務(wù)成功完成時,會通過事件觸發(fā)第二個任務(wù)。幾個任務(wù)可以用這種方式在鏈中傳遞。這樣的一個構(gòu)建鏈一般足以勝任大多數(shù)工作。有時構(gòu)建步驟的可視化和細粒度控制任務(wù)鏈都是我們想要的。
Jenkins術(shù)語里,鏈上的第一個構(gòu)建被稱為上游構(gòu)建,第二個被稱為下游構(gòu)建。
雖然這種鏈?zhǔn)綐?gòu)建的方式一般夠用,但還是有可能需要更好地控制構(gòu)建鏈。這樣的構(gòu)建鏈通常被稱為流水線或工作流。
有許多為Jenkins創(chuàng)建更好流水線的插件,它們的數(shù)量表明了確實有改進這方面的大量需求。
多任務(wù)插件和工作流插件是其中的兩個例子。
工作流插件更加先進,它有一個優(yōu)勢是可以用Groovy DSL來描述而不是在web界面上改來改去。
工作流插件是CloudBees主推的,它現(xiàn)在是Jenkins最主要的貢獻者。