From de638037cd27110891021ba9fd9491848fd32d58 Mon Sep 17 00:00:00 2001 From: Evan Read Date: Wed, 13 Mar 2019 13:42:09 +1000 Subject: [PATCH 1/2] Port from CE: - Refactor and restructure pipelines landing page. - Also has other minor improvements. --- doc/api/pipeline_schedules.md | 6 +- doc/ci/img/pipelines-goal.png | Bin 15283 -> 0 bytes doc/ci/img/types-of-pipelines.png | Bin 12229 -> 0 bytes doc/ci/merge_request_pipelines/index.md | 46 +- doc/ci/pipelines.md | 413 ++++++++++-------- .../merge_when_pipeline_succeeds.md | 2 +- 6 files changed, 258 insertions(+), 209 deletions(-) delete mode 100644 doc/ci/img/pipelines-goal.png delete mode 100644 doc/ci/img/types-of-pipelines.png diff --git a/doc/api/pipeline_schedules.md b/doc/api/pipeline_schedules.md index 137f1fdddec0a8..2e5b8df9a8327e 100644 --- a/doc/api/pipeline_schedules.md +++ b/doc/api/pipeline_schedules.md @@ -1,4 +1,4 @@ -# Pipeline schedules +# Pipeline schedules API You can read more about [pipeline schedules](../user/project/pipelines/schedules.md). @@ -280,7 +280,7 @@ curl --request DELETE --header "PRIVATE-TOKEN: k5ESFgWY2Qf5xEvDcFxZ" "https://gi ## Pipeline schedule variable -> [Introduced][ce-34518] in GitLab 10.0. +> [Introduced](https://gitlab.com/gitlab-org/gitlab-ce/issues/34518) in GitLab 10.0. ## Create a new pipeline schedule variable @@ -358,5 +358,3 @@ curl --request DELETE --header "PRIVATE-TOKEN: k5ESFgWY2Qf5xEvDcFxZ" "https://gi "value": "updated value" } ``` - -[ce-34518]: https://gitlab.com/gitlab-org/gitlab-ce/issues/34518 \ No newline at end of file diff --git a/doc/ci/img/pipelines-goal.png b/doc/ci/img/pipelines-goal.png deleted file mode 100644 index 17bd77e951fec480b5eaa5541beff3383d540339..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 15283 zcmeAS@N?(olHy`uVBq!ia0y~yU~y((U}WQ9W?*30slR#!0|NtRfk$L90|Va?5N4dJ z%_q&kz#vrO8c`CQpH@ds3^0(Ak}_k) zjD-sqPMbDu-n@AS4<1ZUPiJ6YNJ~pgO--FOYu1`IYn+{(Q&Ust&Ye4R=FCNl7R{SC zZ`ZC}X=!P*X3a`VON)z(Te))OtXZ=d7#L>GoS6m#FdNY6)YMdTAsB!A_U#M|3^QiT zfCy~ex^?N&rL$+xW?*2LJb5xi5Ms;x`ST%+dGqEmFfc&43=9nO=FOWiW5%pmvsSHI z1@Q%37bYV&Hy2Y7qAM*e4O1#LH8mwA1ydYNWaiA75D|zWn>KBNa1R_fz`($eo}NBy z)~xwpFn8|US+i!%oH=v)^y#x^&04y2>B^NW`T6-}Wo2j1oH={;Y-?+4adB~o?BvOl z?d|Pzb92+u(&o;c>*M3o-rnxx9S66@c z?pC&z?Pzk&#MDN>is!UB7<)&6_u8%$Tue%^Ep5 zx$D=jx3;z}Uc7ku^5t=HaW7uH*t&J=xpU{T!s?3|7#QZ31o;Is81Hs5F8`vm@Yk6$ zyIov9GHUmxeO~llJb`pP8(W`G0VTEEbUb$n@n!43FmL58wW> zT?oBbdcPz7$(LshCuZy0zvn+SLD%nft*oV@H?PXJgsU;j^G=65OtU?k?QZ3?v1fkZ zzLw+zC36mkOpY`%`%szj(`lXYnhP&e#H}sA|G3*BKYQ|d^_D;DTBlrZf4Q)J^~%4> zwM!Wo6c{{R978H@y_r)T5PVbe0KdiUnSEA=&y}QYf4k)FE{TN?RZ|moh1}e9*5iM{ zhsIqBk3zz>v99h|=a(&i+fUv)+1mPY=5POMJEl`v1_hNZ5^<-M9q(lrX!s{43Qlkh z{1}*@85=gZX=;?5INADYUa{2XVWS#Ko2 z>&HZVSiDl>?6r`E&H`svuFGh@(s=9NyN-sVcjFNwStma0AddJ8o)t%;)*g^$Qns16>ghx;RUXfcJmnsHFC2>R^vhV9 zY;Y`UvOy1@WBU&AHE;K2w3mEHJG10orDU#HY$e0^wv$EIvNngmH zw`;W78nX|-n&AD2r8Vtf=`(?O&O4c|i@lg|ZGG+iL-vIt3NI$;Z+6}{wBT+V9o?$=JAZJ}AMCsIBh z@mHI)(LAZod&jbE)!v6C_kKCEYI&fU-Ml;V>aJ(0-FZDh?`-PIz=a#{-(CNZdHunn zPR+9>!JFe;V;`xt^BlJH%6Hb?UCsCFh2)NjXXi0T$bJ&|vd28t=IX6DHOnOnzA%3F zDiiiu;Cw;xTaIs&$A1k=71lG=Q3V0J9-k{^s9qYzcA!isuXp{!fEPyBQmq#5U9rNQ zA-VZ*kyobNxt;uL-<6&y-Jo-A72EH-(-$`JMjYJaRk&{@@?HQ8vCE9wcE7K z;)=SjJR@#@+J&?rGr^UHwP9Hr+xNBU9@@I+M1`$kr(N4+p1wU0+Bsq08or%}y4j{)FiHM?vwhx+ z32$P|Y+ugacrNC)-E-HF4LN+0x`|2#so zHr=}ZUt;!Lf%&!Vhik4cZ=GDru6VIp`{U^wPoztgE{mX zd2mTK=~=gA)=wpks)?>&wnd}`a9_Cel&ihM^7RBQi(>W#U#5wiwn?}+_ufUtvvZjm zrmf!@uyup+DffsC2Lg1jDGD-r7j_&`xFa6CVtdTYpRVm|ILey0-`#8SwCcZxBxlp% zO%bUPGKv=;)Mlmgs7ws?oFE`8H;apNQ;KWIgDuWXoTj*zXB;(ZT+5e;sdqt;TyL)}>vc`-!c`wsMXo zZ9@CsZaCOp%Xa$u#Dt%T*SLH`qLOCr6*&7}t?2L;=WS}A6V#Z(Jo!2wmCoGq*dSNZ z>5%!2A3q)oUsPJ@6`w5<*vremmww8hBxI)5Z~1n@xp#TN_bozZq!*s36nMRx+0QEF z%&qGp*L>eim{IFz`DEjayD#P)S5(tfdCe3XmYF&I+@6k_j-P8UU&~87kzy#YlE?Z} zzW+a6my#3SZzkjlm>gELS-;Ek-Pw=r98QmdCnbw8Fivv*Bl>8ffv3?TXQ#sv2Al1s zdGJ}v$;eDsw3qv|r~R(F|BZLskJNNToo8FM*jeoef9W^P_gxWcTFNO4H~O$g>^l+_ zcSiP5`0|=lX;Q`3F8R7G_RE~z8p?wECR<+RJ>|T+#^(3;kc*1?8=aX%I;VyG5z~J* z!NTxt)=c%|KULh_)Yz6*M9XeUZhz|WV2kq!&dLqqZPB1q0nx4a{dk#DE|T9fq8;$LHf`8kx&S*qO2 ze`y&Cs=PCU9JTBwC>NZ1G+}X3Amf|4JK2SPB=|QJoK&1`_A8?AhRi1JZ*J~CZ&bkpX8%>ou#T}e3}C5^i`)7?%MX7Lu;v)?iSrMioK6wTFrc7-pKFt$*j|@ z7Sdm^t((tr+6g@i4L_|tBGSydd^a`qSU-CAa9OaE5)9>ZaZv4P2+jQo%;D_md)BLv> zeNx$Ip>iR9rjYnXzOql19v(0Blay}e>08to*_R*0+A&^pcX>mnT{$IJI zQjX4!L~D_YI(ePFEECk1Z+_V>e|vj(#ozgRcmK_Oz3MT;z09N@^ED!IAxZ03b%tzN z8oD&sfHzaR&in6+f84r$eX-2%x|(zEWA4|? zUtjrIe`fMb<$9&Spvpr6cE5gpJt%oe``*`iM;w}OY`=Y5Wu@+oW7W!~k5@k4a$9$k zNc3iZksAWn=1=habfqiNyEnFED$}>9w9Vf?w6@%z`|<45i&qTipRAnZ{3tr#Tbgf@ z(EQI!Q|2qjv~2Y0k;~id*QmIn{m=S2^b z@edEr{VcBkY2VR{-P7xSRXqB3M|9uKz>VKdv}!N^8C2!;Y^wJ3?Z154i~Q1pzdgLp z=Dd%8+wu4RroaDW!no{g+pa~sZ@zoLQ+Z{cU2*jh36lc?5{uqH_@nsq*#e%nmvGi94xUEE-G)mv zYk$=0XMY#?dHk>eOQWJeih0|YjQ0E8hri9W{i?4;Xw-bvh?%%Ai~ z=3Sgr&4vqV``lklWIJTQ()L1S#_g*s6{Wvj@zXnZXP*+^b@S5o9wGYsL}cfEH$N!A zVj3zjDS6H8c-a&GrI|qv^Ixy{TSB4<90mdW7efuUb31R?d|2SjX|PZN$U6p44A_cy z8?abgH_g)GX;cJ@fjq_1rr;lK%L0+(xp}^F=JU7<(ff8Dt^VVBck8Ft>vm_&o^1Yd z>O;~}yG?w~2`3nzKaal}fA3`8v*lJf&t6Ba{d4@;uE+fOuT<6=u(Z7?{+FF6ZaLva z!5dcR3C$~4DjBdif?WWy@#_TViQo6PO_yp@06E=&1w^+Um~dG9%-cf(d+bicHO;k7dozUH|r7=5P++zZq??J^Dfok8=V? z(*XgNHU$Zgmp9oTyrcI^u_AK9UKZ2PFU}t}DHyQ)6##|M7v}_ySBmY1Gj8kV*t?h? zpOJfv(>Z~osN&Q5#p+yDH>xr*nOcen2S^5gZ5Wd3GF`%8DXAL5CY3|hB4 zt*)HgdEcVlVfRkmobdkTy0<)_l*8maPsw@SwVkmNOwI`$JU6|;feT4hOwL`V+qpr) zjsd}~iqHTCCxVjn6VWgK%l|v3Zou+Y;LO`Y6Jn){9xo2DtCnm#07@w!es%k|L!gYr zH(gP-?6dH7=7TZyktH+#7x0VS6ljiBxnh=l@1309?=yb<8+e>S$?RK_hxpx-d#qNQ zJo$C{*xNtu_cJ!~D$YNe1PxARz!zx@pz_MCpl9hvmflsPbMvCQ5_jpC(?ef?!2*PZoGw?OXZQX z)7_5$Y%eXnTe~PPY<0)(Gm*ZJlH6oZM^vZoyOSaIyRf-gpD&_2q2u)X2OKI>LxS5f zLnnGf`bs8!@~UY~?UX#J{mypMtNgDYqt$1Yy4f&)kG%p8s!t{^dAsx0EtTL_S$Q(k z^taXFk2l>`c16B^GHdCoDxo%wz7+q07Pa?B<}ThMS93A~4wnbWKx@}Fz;kFgi-XD^!S=p7=mFOWZ$y;0Y(WURQf%y_|o=r8qs}##sw|=vB z<*%^5{-b#EUdgW$I%4$aIZkQ=r^cU>i{2#~Zpvyq^ZTq)Z`ao5E05Y-O;zTZCG3p6 zFv%=s=BzE3Qn}4j8ufKEr*_8hSbjSma_{bL#paM}evcPD^pkqtwqowW86kQ+kq=gV zm~x4MJ$b@L!_bpk6kpG=XXFb#3{Jp*cxGM^q8TwqC~Fy z+_5y%I6m|CWJ~>E=fAIv-fvm3tZSAQ&&ksh4yyBfteg|Y6UWtII{A=5q>kyt<=>C# zCNERu4N<-p@s#DhWd8e86JEd6T9)~~?MSM1w95Kx9~8`wXy(Z-n0;u%5{UyJ9J?zP zB})BsdR?)E*Yj%-&m>k*R^BAvW^yX);KszcyenM=4wu}Tu;RXA*xKOt$<9H>vX1*! zi(Q_eX}6CnLw41V4HKmoed}}LTWz4S=2~gQ(v0m3*IQ|_8u89tnznI9m6Acq>_2Ok zJdw!e{Wc#Qu=!8q)FY;`Q`t75_u(q`m5H-udn*_ETU;+@7Z;) z*Zi$W<5xM@H)hH#hL@R8i<*D+5m9um;zfX(U z(tfEeLbQMCb~VMaT`e=bpSHQYKUs4lq2ptr&qtofSJSK>_w;%R|M4=`EpUGI(_qbf z^AL$gML)DFcDr9a=ea)S`lg+KE#%iqKAWnL?`#^nNN$sJozs`<+?PTZZ|}bO>5hEe z^xDUqi}<%L-QKxP?d2!_``T~rtBQATwmW(|Sl#YOcTz{rcK_cU&s_g1znH)_Yt_o5M|eM0E_=45 zx-d7dJn~!lm#QuIJSG_N9hNgnaQ_nz<7%J0?b_6Ja+l;a)o;5m{r+4l zwlTU*_fhe^R8O%B0*vcZ6VhUTKW4SE*;A`m*c18RZTWI@y;;g#^2a_-J@@KLp|;}u z?BeR%4tFimQ_tN?f0=HOlJ0D`VD+njXJ>^qo%QxiimQye`t-@OuRWoXZ7~)zGf%MJ zw^A3Iw@_Hq`P@9;{={?h&YL{>bMx$5J&{8KVZMUTj8+RzeB|-Q!S&Vzj~{JoceHJp z<-6|o-&ZXM@2ZwUB*|vz=oq+2aZ>Hg?Ke}tCCY!BR8ue7x-llI-6&>F#_6R+7oB!; zgfIrKYg&BRHRXg_^|_x>w`3hQPI+hkxLoc_^Ed7J%kKAo-aqGZ%a7GpCNRk!SgB;B ze^PhCNxwx`9#vROUMQ?2QW(Xx;OwV)6;Z62R;-hbFKN87;-mB=R@NsD`nJA2C(ng4 zt?)~*F>#ZWaC!Nr@}x(hPv`m5$NXNNa$RuhUq!CDt$ot}wj0)3GvpioY30n|>PStC zVz@QkDe=U|Cknio&E;Em-f~Hn6t|PPljrf?;NQNd(|y}^Zfxscvwmi1(7HQ6Vx0Lh zzvZ9ME#RN{yHN2=+X?>TvQreFaq*Yb8n(3*&1u-rp8nXsoSM0);#c{A!IT@GcqPWf@_s>{-#&8Z%nwzNEnF4a6D(5mGd z5mLZ)-sVcs-HVSqlX6+A8D$o@{A3B(QRgfw#~c#cQqW{>cgTB|DeRY&SW4*}C7RV7}z0tLA2rOUNFt|0CqZbD*pK7e?{oDil}*ubRJ&FuzDDtlMBc570@F)pe&c3I zKk?$)(?_R|6zeq`J)M70!s*^VbC0s-Cn4o$+V>=C_Z*()zIRLP?$gD|=YLMH|9iH4 zYOB)3FrKy_kLus%%Wqz&_5DxAY|SO2FJ}FWdcVQHnm>l`esqH@6LZJW!1}+=AMBU> zf2bGDXfwZHR)uquiHmR3Oqq>yB$QaBR>w3Qz9C@gB$UcIwIl>n&%%Sng-ef<8OPu@Sl zeUak51-m|!ZfM&P9UX5`z2NgRzP6Bv4BPd37S3nZ*M?V%#ivP0q%1mI&v{H>lhWeO z8yi+D`c-)T+A9C(;-c=aLR;mg(o4qQ8Oo`(1Fb|%VuDHoob zrf4MAAmVY?NX03<>CqB#0aKUSFAv6&I{+#H1&2 zcfN66S?8>DL^aOYB)UzZwkAi;tW{!B;K7xr#Z67PPT9mNv4vV?do1ay)lJ+a#cnlU zCd-rKmC^r3xg3t%w09q*izdHqe8JzU*mZuzX`3(WjwZ+?9BSM1Yl-6B3&*}?PrmTF zHhV4WwPs@%!Hxgty!wB7!iyJwuccNv^BtLxarkNXrj#rXCBCE+w|UwPuLy|DJo3!s z>kAp_BPX6VZjGHgWuId2gZ|VDiW>jjx>qQ+ZrP{JuH1F{2+xV&5B&?;GI&kcyuugT zN(xQ7_3pdD`3tPFXO^fc$Qvan=PKtuT=#YzQ?$pNEqq4RMk#HvdjfZEirMV6>cG`& z)$BLr5BWMbt$u5!YyPoKW{sjoc&Lukl?g^QyOl)}k9_93HsP}hw@~_#wkM4pHX%Ca zzFhU<64=G$YGNMs>ikM2k zTGTW1;`blJh1`Dy$8_c6x|))$=?D1MzR!(f-U^nd5>*xM<84^2ZshI|)Ts1lM_|`|xKlT`3pY${+GU;DoZp}saXNn7>^goM8y?V`V#h`X( ziG$VFklP8|22Yk9HnKL`A(7`iLtQr^`&~}^t!24wYYsg6^X*pN>ZJ>-&$KB^JhR&| zuj<;G?Gn#sre>M$Y0H^ZbdsUuk-e?8UE-00y3W%QF1{_XUmUvj-M83zSGG@2E#0Fi zZ>SQrvgezW(#6S4OXD6Hv!p&-rBvMgfTix5C3C|kr#b82hOkWN-^BWn!QCiefufWG zqky4`q&@qjPsOQRA=6s;7jL@p*(jiDp@hTqhC>M_xGJxI@2P&_Cph_TK6~5h>AODm zTD*IEd0xyW-kxvQ^IC2SEIa)+Bcgb(3hU9Gx1vq<{u0^T_TDFWd+n+F_usAin&)g~ zzG=rb=Uvi1#=*?l!YS)M?LB=@EYA7g_7z(WOFWsT$ggvGcFMkV_2S*n%Iv0b9-ok5 z#B8ja-BVX?V;Ll`Ou6c=JVd)YCHLEOlX#gfARdzPu`U`EAG9| z-SZ>hD~CJZ)%@J6<(4TY*rGd=;~wsp-x0Mc`@_e#tDcwUl;1gfHN1buE4wo5@9ec_ zdY_l(yjt@9WV=-HSC#qvoCh`hx|c;xyz=3{@lV^CmiZl(Jvq70qS9vUzFZPremVBj zb%}PKl`WZCj;!CAm;MZIrTs{U}*AOCdWRa)}QvhN&q4&3WUj zOr`TT%OZzrCyg7`Z=Wcz=W|@=DLnMy>u&w%H=<{DlrDaGPGd_^p4_1xhvOB}yXCp9 z`6V}Qx%S02f8pxoa{D9aZEQL(@Otmg+xj|sZ9f^-{rm36o$rz1HqAk_a*0i!d5d|< zY{k8A%O-7$Y}ZQLFz=1ymXPB+YdAJrUTajB{w_D^LF*G|AH7+2vaPAhZdT2Hc4s?} z;t${EnH$R|>^xn2Z^Hdw55A{7+ofpVJbTOi>yGB1g-iBT95^~ht8$`c|6Qh(-4^kF zTNka)m0CA@t==csuhSI2oI0Mki9hXS=$}5`pH6J^gP-nF)ZX{)cVb%64XzJ2ZXR)U zJ`o|O+C6cF;$**S?g;4zyQXtpo~Bsx`swe2?eqUC%(=Zs5d_(@J*0Iuy#1b{`R44l zhhjzZi_T2Qd!K%I#&xL(XEWIge}1tCoBw$cn-{q`)uaEqz4bo>G7+;$6Ib~|xBUT0m@gC4x zfZ2*Z?agcIGoF4{-2e69^|GCL9XHd~9w~pWV`Ip_=V+qOQH6i8`SDMtC>C$@Zo}6S9;ff?d0)O| zanC)y;J@(d3TF^>$~xh*w*2`;dH3A&%c4A8HeCE%wxIn>Zmj&q;+4mF++)7W@-lBN zIU9R+&0q0l*^BB5Q{L@=GdJ5OI8*94ziOfVgf}KP&mMbo>u*Bl!i6!Xgl74OpO~cj zRy^p*v!)m!{nu;(ETV^!)Fz+tD>J^CQ?_~j`Naxx39CZA9UPj91la{k-DDWoYbZR@ zeWhW&>*T)ombp8(YV117^#6YQx7_>1aeh@lKiZxDJnynpw08CHdG~i%UUFbgn%Z0W zzWOE0f^f5M|Mup|zOAoIRD2$AP;tfELyGcqU3aegU82T+QuNieo3d}uZMy9EBxGW6 ztMdba_jfkP3mpAi{-$`{hFjMU@;!Job6Io&hYVBu0mXYauV?PRemQf$?efRHhc8~g z{xC!Qp@0PoU!(K0hc}v~|29vzDUq?OUR z9Q;K28l4%yMnfeEII?!<{o9o`_5Q<$#{aDUTc0xB{oLwFaQO4PC!7BryzBh_#f18G z-}Xzv+NTeTPe(l`9@maA2%a1wp z>mHRmo)s!RF)M3-wQBv>YzvkHiUlYBpH*D(mI=vx2EIn;2Lk(9x5iqq@HzU4T84rp z!A=9od?;&Q^Q(3LM`;U|pA+~Qw%&Dp#$W$)=KYP*pn!`gJfO(H5O4h?Q#!e#X#RKI zw)W?;3#9lewO71tN_{gSZc^sG*SX#A_svfKzH1)alaTvdMXM4lt&hZohnGJ%q~R-5 zC*QtBP==|!LG+!#&$@=X7Uu^74EJs;Uj5qV7HCtyb^E^UZ%w-cbKGx5sl7AbAyf2Y z_PT}7CT4w{k?Rm;Q2c34&OG%irdnO%@@D*V>jJuKI>ZBRvuYnue55HQEWP{1zpL+0 zhUvyFQlI-cyj>M>g*jKyg#@!OPG7tW}0!Ou%XGF-P&F*~k_uR3}jXwKRrZ`qH zv@>idlKs^6GdanLE8FV5VY|(DW^kc2J&-reupEp_eA>-+(&S!bcgXZv6dj1XiePsK- zS?v_;tp_>q~BBY_0x2t7_AJv1sdv_x#Cr(aB=dS8+~q<~bEP!`ZB|q{D3& zH}9gZR;!e19=k9GzL}2YvWsu;O?-Ug>qae2`J%6XTASm&qdgi=uNA*8JxBBM@pVTP z=d3dCzj5w)e@uNz$d`rAU7FqIUCF0Z+Lx%fMc5~QuL?bIO(}HEggNmkYYkQ{s@T+A znp^gE$6=>uMQPo+or2HS+~gC~^3*-@eA)EK-lh#VWddg?R%>na5Ire7X?MH*nF(&D zv$};M%U7y-ZVe5{7g*Mt8RD82p&at?vy6S#?u3(qf6wuKWGe31zAo99U;KAeN8w7% zB7?=6n~U0~%xWrsnXx>mV~LG!=HbmkK7~?~oBXveX;g&sOpYMU)-M*h2YlK?Bn~ZNVb$DZH0iUZlm3hA zm-rO5G}XO2&MuSWTWK)Wg=-<}8r7plcN8l_Ude2p(`3xDbf#B&rcFUt{eNYF9}PVW z4~)0mTGDc91%JVbedo;1%dWlhCFBnWpXcL)J`4R$%5IugQ6adtJDKmIN8}_U&HE>1 zCaryXx$%O;X_NMr*=3%NoNr4kRXi64Ov&i@^waN-&a5jDWzv})!k;pwvzKP4Tciko z%v!fGWAkmrhs%Vn&v-iJMAXc87w5hZ4X*h*mFY)=!UJm`m#Ex(9s289f2=9|xW4s- zOwtlB$Cch9JDf|{MBSaM#7=)$!+!Mh+K@Af2UiA#H>hlcm)K6XxO@Ho>#Z5!wIHbV(vw$RbBjD|Rz8jDP7AYhnYBma$CksE zohKH5$eHwJb8VaRo$6h(kEDzp56c`%*Yk?%?w5^lTVZ5xu>4g$-^wLxHpw^^dG!3& zmi4SzdCbi6@5E!z6x$+C@897(r!yQ7ScD>kW3)lcU&&k_6 zir6&SsV&?W(~2yYOfY-3_iE}g%P0L)mWwA<#;O^a9@Kd8xgvI1kGj<<-!qDmd-N9T zCoqd-T>csqo0fGZlkesVua6afR=jO``cmMz=-ro{-{spRc0K<2v$^)ovVZp$SuL4T zzh1SSLn}BUfNAQBSU%6N37sXZdrs$gZF-?`yEG}zCa`ZpjMCbtCq(yHx$Nw0(q+?1 z5$-?FljyjT(`NZBQ6H(;Nug2lNk$PtTYp~qX~p{Km%#TKmt`isSf_bdF~Qa1iBD|o z-JO4@uUuNSkng3{#uc9@PI_)5*kU52_Ug|fd7y}tTsQb_92zTAyrj|zRb zUPrAjdB1DjjM~qOuSc3sUABAvZ2^1JFICUC+by;@qT{c$C`57U!`C~-7il@4nfWp+ zZiV42=Svkf!gFWO&_43{@7?6Il}n#Ywh9o?(s^3I5#h;aseAwXg@50RI`02D7yIK@ z>7^-$1b$77|L{WQy!wL$+qkD~cRscoBYvP_6%Id%6RkG)Rh zrXG{b35L`yKVfd77A*-R@f6TGxAR zpZU+#+L@PEaQ_M6_n2}0<)^%__B&?R6)(Aae8SA+?GLW_ywv%#wdB{c@h|c8*+*SSQ!qv%-?z~?uQIxe& zYxyb3B1e-Yns?{yJ|g*veT!t{`3}V+0+;kow|DI0Gk38l+#9oE=1-5ep9@xYDSo~_ zFYN?>s`uvZ=a$ZX0?r+ZOYWYX5cwm-CUTDc-RA4lvvr@#5pQlmT!)l?Gaa&Bgdc={ZpQmr;4{58hRKK?TFYmvNnLH;Cc0H1o zxu(tRv(`3bTPgd=h_6NJTQ2&yx%|rH`NSVjSOYZmRAJ6vQTrVbfCQr&)$W4#)L*V9viIp=l;+KDI zK7IMf)XcI@*H=dbgkC;1T=M0E(*OTI4+if0zWj5|`+Jq=CiLrn+`HMnsBKE$J&oPF z|1;FwYUZ&lspfNE?mhdMz(TwG|E-;}qslXWmd%X2vE7qr;Vr$DW|Bp3yju5GS7zRL zxww4VmCbp2cP)cBhHj3TTFUg&XYFzD$m7} zj5R%Cq4i}`70-DtRaCxq#(J65u0xN`NiVmvH&YecaMOM2#)-?N-)27YlJGBmJ=yl> zkEnzEPeVMno}7^TK>ky(q*1D2@9)}aYIUW*73Y4-3=MZ##(82|!!%cw_*?lO3yzt1 z9A;?EYRgENv3NN%(__6o|HBNHoKtPTB=AV#M*bw{g$h-D88Pc>zbaTtdLPsIni+p9 z@@r(&0ntwl2T!d@m~e2qLfeE6Me8<2Kg%P{OuaUJb#gMyxkftoCv~?aUvt>d7ym=; z<9vAIS=(sELK+$uuYvP&wN7ZGUkDj)&DKinw zNQ>)NKjbX6bMdFeE*DeoNj+=W#I(htTGFt^h396OUD|6y6;bia!u1W7SGcXCk4{)2 zRoUaDo_-?hU&&6rZ-zS$Jz81=kOa@E^O9g4RnEB5RRzBsLMLAz`~b%bfC;SvVhS96x0SpWN~ zCEK>!Z{Hv2GwN|wXtDb+d4VX8p@XsA)h^+=rHi{*de=y&gNPUgBKrIBEL4u zi}74^x+%7=SJjzeW23;nqb*@<9Ig@9KV>Y9o|zhv!?mIQ@HYV!A;T1DBNg_4it6)E zS5&OI*rcCwt zZg@dcVv+c|cR4{D%~!5Y*t%e2-_-9p%31bj>XsVGUrH4GIlwV>Nmw_IB;$fY|AV?8QA_XQ{l8;z_(4kpHyN?Z&A+Q71UtEMg-#&Yi5SnY7qo z*=u&cl^+%Absu^fuRng2d3K6HLh9RJF+cC#y5M;)N~BaWiKA0u)8VY$a`*T3Mc973 zzg3GN;Z>C8{*JVuUZEM6?KrQuuQ@1CZriV&BP+l?vqtynS4GR|s&CsJx^}iJ+9rH! zsZ0y-vR8?>qR+l#l*%y1xa27BB&fC2^&TZMa z`Q*j5X$}T90+WT_du+65()OwDUA@{nJm>E1-im2Ss%SW`&3)+k2=n!J3iI*er#hpxAM-hU8QzGr{Jb=j^vEUCL+es^6}`}d9bZNL4$-fAa#oVc3ySxWbo@2}-oTcTcmcU8*W8z<+i zlo?aC>h2nYCqH%WtlZ|Ulw1FD(#+0dxxa3Lf`4L%qKZ(bgp<_oVx9E!u4tBsPOrTy`l(cXVpfOZ-Xx>s-mMDGdlWt1 zPd@M_RWl$(lecKn#tAL%uN)8GVHS|!bI{p%YC;pcP1-f4Scb}p{F$3roDG9(dkoX1 zE@fUwnsX_?u-7}GVDftF&XDY%0-K``o%G?8ny6UF(q+vpc}^f+eV-^bqih_?q`y>7enn)<7? zJU6x~ZZLMabTQmZ>8gnHB%5y=W`1c>?5X@Ny}3>YzryP1*^Fp#s zJ#LGqd{llg;d=uT1mc z`5tBA+_m6K#mr*mww{&i-v5~scXe(h*JFY6pYAWdC!i9P%PG02u`YanLdV(X;rhRw zRGqgNsd=(lI4_ZSx3#b?WSwDmm{AIs?t)0CK123x&r{YoKXGFabh3I|Hs}erIqqJ} zFh|jIzWu?HyAzgMw7C3=uTI~v$biT7B1`=N`4`JJ_Bux$e|ab}GjYL-WeQ>JL8&c? zZB9!=!i~=C-;=*}y}~Y`@}@hRPpQq;;X8Ty^jTx8C2ITbrMBn%ylu7L?^JgC4c4Rj zC)X8vJl+44eevFpQ=O-^Y3#9ZIWc4Nr9EkJ56l)H6))Xkf8@_G6X}DB3^tO-m9rf_ z20oshd^db+*_svCl9t@k>+5>G$k{!8zPBjXN4u-RnpUgiR~B3BnQ*gSLv;H*KGE4K z8sF?=*Z;klw{PAO$-kz`uV3_Q?V9?UkAWdZN3uZMW7dvE@!P%|G5;4`&BU-n+;eAd z&biiWzUw(It$m*q$iVRZv5HH|kCSu1Sh(38H)ClyUd%Lct=hJXmnVOLc6NHY`njxg HN@xNAqG0a> diff --git a/doc/ci/img/types-of-pipelines.png b/doc/ci/img/types-of-pipelines.png deleted file mode 100644 index 4a64f4f4cf7578852be1e8a808bcc766d9ef8d98..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 12229 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 Introduced in GitLab 8.8. +## Introduction + +Pipelines are the top-level component of continuous integration, deployment, and delivery. + +Pipelines comprise: + +- Jobs that define what to run. For example, code compilation or test runs. +- Stages that define when and how to run. For example, that test run after code compilation. + +Jobs in a stage are executed by [Runners](runners/README.md) in parallel, if there are enough concurrent [Runners](runners/README.md). + +If the jobs in a stage: + +- Succeed, the pipeline moves on to the next stage. +- Fail, the next stage is not (usually) executed. + NOTE: **Note:** If you have a [mirrored repository where GitLab pulls from](../workflow/repository_mirroring.md#pulling-from-a-remote-repository-starter), you may need to enable pipeline triggering in your project's **Settings > Repository > Pull from a remote repository > Trigger pipelines for mirror updates**. -## Pipelines +### Simple example -A pipeline is a group of [jobs] that get executed in [stages]. -All of the jobs in a stage are executed in parallel (if there are enough -concurrent [Runners]), and if they all succeed, the pipeline moves on to the -next stage. If one of the jobs fails, the next stage is not (usually) -executed. You can access the pipelines page in your project's **Pipelines** tab. +As an example, imagine a pipeline consisting of four stages, executed in the following order: -In the following image you can see that the pipeline consists of four stages -(`build`, `test`, `staging`, `production`) each one having one or more jobs. +- `build`, with a job called `compile`. +- `test`, with two jobs called `test` and `test2`. +- `staging`, with a job called `deploy-to-stage`. +- `production`, with a job called `deploy-to-prod`. ->**Note:** -GitLab capitalizes the stages' names when shown in the [pipeline graphs](#pipeline-graphs). +## Visualizing pipelines -![Pipelines example](img/pipelines.png) +> [Introduced](https://gitlab.com/gitlab-org/gitlab-ce/merge_requests/5742) in GitLab 8.11. -## Types of pipelines - -There are three types of pipelines that often use the single shorthand of "pipeline". People often talk about them as if each one is "the" pipeline, but really, they're just pieces of a single, comprehensive pipeline. +Pipelines can be complex structures with many sequential and parallel jobs. -![Types of Pipelines](img/types-of-pipelines.png) +To make it easier to understand the flow of a pipeline, GitLab has pipeline graphs for viewing pipeline +and their statuses. -1. **CI Pipeline**: Build and test stages defined in `.gitlab-ci.yml`. -1. **Deploy Pipeline**: Deploy stage(s) defined in `.gitlab-ci.yml` The flow of deploying code to servers through various stages: e.g. development to staging to production. -1. **Project Pipeline**: Cross-project CI dependencies [triggered via API][triggers], particularly for micro-services, but also for complicated build dependencies: e.g. api -> front-end, ce/ee -> omnibus. +Pipeline graphs can be displayed in two different ways, depending on what page you +access the graph. -## Development workflows +NOTE: **Note:** +GitLab capitalizes the stages' names when shown in the [pipeline graphs](#pipeline-graphs). -Pipelines accommodate several development workflows: +### Regular pipeline graphs -1. **Branch Flow** (e.g. different branch for dev, qa, staging, production). -1. **Trunk-based Flow** (e.g. feature branches and single master branch, possibly with tags for releases). -1. **Fork-based Flow** (e.g. merge requests come from forks). +Regular pipeline graphs that show the names of the jobs of each stage. Regular pipeline graphs can +be found when you are on a [single pipeline page](#seeing-pipeline-status). For example: -Example continuous delivery flow: +![Pipelines example](img/pipelines.png) -![CD Flow](img/pipelines-goal.png) +### Pipeline mini graphs -## Jobs +Pipeline mini graphs takes less space and can give you a +quick glance if all jobs pass or something failed. The pipeline mini graph can +be found when you navigate to: -Jobs can be defined in the [`.gitlab-ci.yml`][jobs-yaml] file. Not to be -confused with a `build` job or `build` stage. +- The pipelines index page. +- A single commit page. +- A merge request page. -## Defining pipelines +Pipeline mini graphs allow you to see all related jobs for a single commit and the net result +of each stage of your pipeline. This allows you to quickly see what failed and +fix it. -Pipelines are defined in `.gitlab-ci.yml` by specifying [jobs] that run in -[stages]. +Stages in pipeline mini graphs are collapsible. Hover your mouse over them and click to expand their jobs. -See the reference [documentation for jobs](yaml/README.md#jobs). +| Mini graph | Mini graph expanded | +|:-------------------------------------------------------------|:---------------------------------------------------------------| +| ![Pipelines mini graph](img/pipelines_mini_graph_simple.png) | ![Pipelines mini graph extended](img/pipelines_mini_graph.png) | -## Manually executing pipelines +### Job ordering in pipeline graphs -Pipelines can be manually executed, with predefined or manually-specified [variables](variables/README.md). +Job ordering depends on the type of pipeline graph. For [regular pipeline graphs](#regular-pipeline-graphs), jobs are sorted by name. -To execute a pipeline manually: +For [pipeline mini graphs](#pipeline-mini-graphs) ([introduced](https://gitlab.com/gitlab-org/gitlab-ce/merge_requests/9760) +in GitLab 9.0), jobs are sorted by severity and then by name. -1. Navigate to your project's **CI/CD > Pipelines**. -1. Click on the **Run Pipeline** button. -1. Select the branch to run the pipeline for and enter any environment variables required for the pipeline run. +The order of severity is: -## Seeing pipeline status +- failed +- warning +- pending +- running +- manual +- scheduled +- canceled +- success +- skipped +- created -You can find the current and historical pipeline runs under your project's -**Pipelines** tab. Clicking on a pipeline will show the jobs that were run for -that pipeline. +For example: -![Pipelines index page](img/pipelines_index.png) +![Pipeline mini graph sorting](img/pipelines_mini_graph_sorting.png) -## Seeing job status +### How pipeline duration is calculated -When you visit a single pipeline you can see the related jobs for that pipeline. -Clicking on an individual job will show you its job trace, and allow you to -cancel the job, retry it, or erase the job trace. +Total running time for a given pipeline excludes retries and pending +(queue) time. -![Pipelines example](img/pipelines.png) +Each job is represented as a `Period`, which consists of: -## Seeing the failure reason for jobs +- `Period#first` (when the job started). +- `Period#last` (when the job finished). -> [Introduced][ce-17782] in GitLab 10.7. +A simple example is: -When a pipeline fails or is allowed to fail, there are several places where you -can quickly check the reason it failed: +- A (1, 3) +- B (2, 4) +- C (6, 7) -- **In the pipeline graph** present on the pipeline detail view. -- **In the pipeline widgets** present in the merge requests and commit pages. -- **In the job views** present in the global and detailed views of a job. +In the example: -In any case, if you hover over the failed job you can see the reason it failed. +- A begins at 1 and ends at 3. +- B begins at 2 and ends at 4. +- C begins at 6 and ends at 7. -![Pipeline detail](img/job_failure_reason.png) +Visually it can be viewed as: -From [GitLab 10.8][ce-17814] you can also see the reason it failed on the Job detail page. +```text +0 1 2 3 4 5 6 7 + AAAAAAA + BBBBBBB + CCCC +``` -## Pipeline graphs +The union of A, B, and C is (1, 4) and (6, 7). Therefore, the total running time is: -> [Introduced][ce-5742] in GitLab 8.11. +```text +(4 - 1) + (7 - 6) => 4 +``` -Pipelines can be complex structures with many sequential and parallel jobs. -To make it a little easier to see what is going on, you can view a graph -of a single pipeline and its status. +## Configuring pipelines -A pipeline graph can be shown in two different ways depending on what page you -are on. +Pipelines, and their component jobs and stages, are defined in the [`.gitlab-ci.yml`](yaml/README.md) file for each project. ---- +In particular: -The regular pipeline graph that shows the names of the jobs of each stage can -be found when you are on a [single pipeline page](#seeing-pipeline-status). +- Jobs are the [basic configuration](yaml/README.html#introduction) component. +- Stages are defined using the [`stages`](yaml/README.html#stages) keyword. -![Pipelines example](img/pipelines.png) +For all available configuration options, see [GitLab CI/CD Pipeline Configuration Reference](yaml/README.md). -Then, there is the pipeline mini graph which takes less space and can give you a -quick glance if all jobs pass or something failed. The pipeline mini graph can -be found when you visit: +### Settings and schedules -- The pipelines index page. -- A single commit page. -- A merge request page. +In addition to configuring jobs through `.gitlab-ci.yml`, additional configuration options are available +through the GitLab UI: -That way, you can see all related jobs for a single commit and the net result -of each stage of your pipeline. This allows you to quickly see what failed and -fix it. Stages in pipeline mini graphs are collapsible. Hover your mouse over -them and click to expand their jobs. +- Pipeline settings for each project. For more information, see [Pipeline settings](../user/project/pipelines/settings.md). +- Schedules for pipelines. For more information, see [Pipeline schedules](../user/project/pipelines/schedules.md). -| **Mini graph** | **Mini graph expanded** | -| :------------: | :---------------------: | -| ![Pipelines mini graph](img/pipelines_mini_graph_simple.png) | ![Pipelines mini graph extended](img/pipelines_mini_graph.png) | +### Grouping jobs -### Grouping similar jobs in the pipeline graph +> [Introduced](https://gitlab.com/gitlab-org/gitlab-ce/merge_requests/6242) in GitLab 8.12. -> [Introduced][ce-6242] in GitLab 8.12. +If you have many similar jobs, your [pipeline graph](#visualizing-pipelines) becomes long and hard +to read. -If you have many similar jobs, your pipeline graph becomes very long and hard -to read. For that reason, similar jobs can automatically be grouped together. +For that reason, similar jobs can automatically be grouped together. If the job names are formatted in certain ways, they will be collapsed into a single group in regular pipeline graphs (not the mini graphs). + You'll know when a pipeline has grouped jobs if you don't see the retry or cancel button inside them. Hovering over them will show the number of grouped jobs. Click to expand them. ![Grouped pipelines](img/pipelines_grouped.png) -The basic requirements is that there are two numbers separated with one of +#### Configuring grouping + +In the pipeline [configuration file](yaml/README.md), job names must include two numbers separated with one of the following (you can even use them interchangeably): -- A space (` `) -- A slash (`/`) -- A colon (`:`) +- A space. +- A slash (`/`). +- A colon (`:`). + +NOTE: **Note:** +More specifically, it uses [this](https://gitlab.com/gitlab-org/gitlab-ce/blob/2f3dc314f42dbd79813e6251792853bc231e69dd/app/models/commit_status.rb#L99) regular expression: `\d+[\s:\/\\]+\d+\s*`. ->**Note:** -More specifically, [it uses][regexp] this regular expression: `\d+[\s:\/\\]+\d+\s*`. +#### How grouping works The jobs will be ordered by comparing those two numbers from left to right. You usually want the first to be the index and the second the total. For example, the following jobs will be grouped under a job named `test`: -- `test 0 3` => `test` -- `test 1 3` => `test` -- `test 2 3` => `test` +- `test 0 3` +- `test 1 3` +- `test 2 3` The following jobs will be grouped under a job named `test ruby`: -- `test 1:2 ruby` => `test ruby` -- `test 2:2 ruby` => `test ruby` +- `test 1:2 ruby` +- `test 2:2 ruby` The following jobs will be grouped under a job named `test ruby` as well: -- `1/3 test ruby` => `test ruby` -- `2/3 test ruby` => `test ruby` -- `3/3 test ruby` => `test ruby` +- `1/3 test ruby` +- `2/3 test ruby` +- `3/3 test ruby` -### Manual actions from the pipeline graph +### Pipelines for merge requests -> [Introduced][ce-7931] in GitLab 8.15. +GitLab supports configuring pipelines that run only for merge requests. For more information, see +[Pipelines for merge requests](merge_request_pipelines/index.md). -[Manual actions][manual] allow you to require manual interaction before moving -forward with a particular job in CI. Your entire pipeline can run automatically, -but the actual [deploy to production][env-manual] will require a click. +### Badges -You can do this straight from the pipeline graph. Just click on the play button -to execute that particular job. For example, in the image below, the `production` -stage has a job with a manual action. +Pipeline status and test coverage report badges are available and configurable for each project. -![Pipelines example](img/pipelines.png) +For information on adding pipeline badges to project, see [Pipeline badges](../user/project/pipelines/settings.md#pipeline-badges). -### Delay a particular job in the pipeline graph +## Multi-project pipelines **[PREMIUM]** -> [Introduced](https://gitlab.com/gitlab-org/gitlab-ce/merge_requests/21767) in GitLab 11.4. +Pipelines for different projects can be combined and visualized together. -When you do not want to run a job immediately, you can [delay the job to run after a certain period](yaml/README.md#whendelayed). -This is especially useful for timed incremental rollout that new code is rolled out gradually. -For example, if you start rolling out new code and users do not experience trouble, GitLab automatically completes the deployment from 0% to 100%. -Alternatively, if you start rolling out and you noticed that a few users experience trouble with the version, -you can stop the timed incremental rollout by canceling the pipeline, and [rolling](environments.md#rolling-back-changes) it back to the stable version. +For more information, see [Multi-project pipelines](multi_project_pipelines.md). -![Pipelines example](img/pipeline_incremental_rollout.png) +## Working with pipelines -### Ordering of jobs in pipeline graphs +Generally, pipelines are executed automatically and require no intervention once created. -**Regular pipeline graph** +However, there are instances where you'll need to interact with pipelines. These are documented below. -In the single pipeline page, jobs are sorted by name. +### Manually executing pipelines -**Mini pipeline graph** +Pipelines can be manually executed, with predefined or manually-specified [variables](variables/README.md). -> [Introduced][ce-9760] in GitLab 9.0. +You might do this if the results of a pipeline (for example, a code build) is required outside the normal +operation of the pipeline. -In the pipeline mini graphs, the jobs are sorted first by severity and then -by name. The order of severity is: +To execute a pipeline manually: -- failed -- warning -- pending -- running -- manual -- scheduled -- canceled -- success -- skipped -- created +1. Navigate to your project's **CI/CD > Pipelines**. +1. Click on the **Run Pipeline** button. +1. On the **Run Pipeline** page: + 1. Select the branch to run the pipeline for in the **Create for** field. + 1. Enter any [environment variables](variables/README.md) required for the pipeline run. + 1. Click the **Create pipeline** button. -![Pipeline mini graph sorting](img/pipelines_mini_graph_sorting.png) +The pipeline will execute the jobs as configured. -### Multi-project pipelines graphs **[PREMIUM]** +### Accessing pipelines -With [multi-project pipelines](multi_project_pipelines.md), -you can visualize cross-project pipelines. +You can find the current and historical pipeline runs under your project's +**CI/CD > Pipelines** page. Clicking on a pipeline will show the jobs that were run for +that pipeline. -## How the pipeline duration is calculated +![Pipelines index page](img/pipelines_index.png) -Total running time for a given pipeline would exclude retries and pending -(queue) time. We could reduce this problem down to finding the union of -periods. +You can also access pipelines for a merge request by navigating to its **Pipelines** tab. -So each job would be represented as a `Period`, which consists of -`Period#first` as when the job started and `Period#last` as when the -job was finished. A simple example here would be: +### Accessing individual jobs -- A (1, 3) -- B (2, 4) -- C (6, 7) +When you access a pipeline, you can see the related jobs for that pipeline. -Here A begins from 1, and ends to 3. B begins from 2, and ends to 4. -C begins from 6, and ends to 7. Visually it could be viewed as: +Clicking on an individual job will show you its job trace, and allow you to: -``` -0 1 2 3 4 5 6 7 - AAAAAAA - BBBBBBB - CCCC -``` +- Cancel the job. +- Retry the job. +- Erase the job trace. -The union of A, B, and C would be (1, 4) and (6, 7), therefore the -total running time should be: +### Seeing the failure reason for jobs -``` -(4 - 1) + (7 - 6) => 4 -``` +> [Introduced](https://gitlab.com/gitlab-org/gitlab-ce/merge_requests/17782) in GitLab 10.7. + +When a pipeline fails or is allowed to fail, there are several places where you +can quickly check the reason it failed: + +- In the pipeline graph, on the pipeline detail view. +- In the pipeline widgets, in the merge requests and commit pages. +- In the job views, in the global and detailed views of a job. + +In any case, if you hover over the failed job you can see the reason it failed. + +![Pipeline detail](img/job_failure_reason.png) + +From [GitLab 10.8](https://gitlab.com/gitlab-org/gitlab-ce/merge_requests/17814), +you can also see the reason it failed on the Job detail page. + +### Manual actions from pipeline graphs + +> [Introduced](https://gitlab.com/gitlab-org/gitlab-ce/merge_requests/7931) in GitLab 8.15. + +Manual actions, configured using the [`when:manual`](yaml/README.md#whenmanual) parameter, +allow you to require manual interaction before moving forward in the pipeline. + +You can do this straight from the pipeline graph. Just click on the play button +to execute that particular job. + +For example, your entire pipeline could run automatically, but require manual action to +[deploy to production](environments.md#manually-deploying-to-environments). Below, the `production` +stage has a job with a manual action. + +![Pipelines example](img/pipelines.png) + +### Delay a job in a pipeline graph + +> [Introduced](https://gitlab.com/gitlab-org/gitlab-ce/merge_requests/21767) in GitLab 11.4. -## Badges +When you do not want to run a job immediately, you can use the [`when:deplayed`](yaml/README.md#whendelayed) parameter to +delay a job's execution for a certain period. -Pipeline status and test coverage report badges are available. You can find their -respective link in the [Pipelines settings] page. +This is especially useful for timed incremental rollout where new code is rolled out gradually. + +For example, if you start rolling out new code and users: + +- Do not experience trouble, GitLab can automatically complete the deployment from 0% to 100%. +- Experience trouble with the new code, you can stop the timed incremental rollout by canceling the pipeline + and [rolling](environments.md#rolling-back-changes) back to last stable version. + +![Pipelines example](img/pipeline_incremental_rollout.png) + +### Using the API + +GitLab provides API endpoints to: + +- Perform basic functions. For more information, see [Pipelines API](../api/pipelines.md). +- Maintain pipeline schedules. For more information, see [Pipeline schedules API](../api/pipeline_schedules.md). +- Trigger pipeline runs. For more information, see: + - [Triggering pipelines through the API](triggers/README.md). + - [Pipeline triggers API](../api/pipeline_triggers.md). ## Security on protected branches @@ -281,11 +336,11 @@ The following actions are allowed on protected branches only if the user is [allowed to merge or push](../user/project/protected_branches.md#using-the-allowed-to-merge-and-allowed-to-push-settings) on that specific branch: -- Run **manual pipelines** (using [Web UI](#manually-executing-pipelines) or Pipelines API). -- Run **scheduled pipelines**. -- Run pipelines using **triggers**. -- Trigger **manual actions** on existing pipelines. -- **Retry/cancel** existing jobs (using Web UI or Pipelines API). +- Run manual pipelines (using [Web UI](#manually-executing-pipelines) or pipelines API). +- Run scheduled pipelines. +- Run pipelines using triggers. +- Trigger manual actions on existing pipelines. +- Retry/cancel existing jobs (using Web UI or pipelines API). **Variables** marked as **protected** are accessible only to jobs that run on protected branches, avoiding untrusted users to get unintended access to @@ -296,21 +351,3 @@ branches, avoiding untrusted code to be executed on the protected runner and preserving deployment keys and other credentials from being unintentionally accessed. In order to ensure that jobs intended to be executed on protected runners will not use regular runners, they must be tagged accordingly. - -[jobs]: #jobs -[jobs-yaml]: yaml/README.md#jobs -[manual]: yaml/README.md#whenmanual -[env-manual]: environments.md#manually-deploying-to-environments -[stages]: yaml/README.md#stages -[runners]: runners/README.md -[pipelines settings]: ../user/project/pipelines/settings.md -[triggers]: triggers/README.md#ci-job-token -[ce-5742]: https://gitlab.com/gitlab-org/gitlab-ce/merge_requests/5742 -[ce-6242]: https://gitlab.com/gitlab-org/gitlab-ce/merge_requests/6242 -[ce-7931]: https://gitlab.com/gitlab-org/gitlab-ce/merge_requests/7931 -[ce-9760]: https://gitlab.com/gitlab-org/gitlab-ce/merge_requests/9760 -[ce-17782]: https://gitlab.com/gitlab-org/gitlab-ce/merge_requests/17782 -[ce-17814]: https://gitlab.com/gitlab-org/gitlab-ce/merge_requests/17814 -[regexp]: https://gitlab.com/gitlab-org/gitlab-ce/blob/2f3dc314f42dbd79813e6251792853bc231e69dd/app/models/commit_status.rb#L99 -[eep]: https://about.gitlab.com/pricing/ "GitLab Premium" -[ee-2121]: https://gitlab.com/gitlab-org/gitlab-ee/issues/2121 diff --git a/doc/user/project/merge_requests/merge_when_pipeline_succeeds.md b/doc/user/project/merge_requests/merge_when_pipeline_succeeds.md index bdd7d0022e6925..f8af71ab46bf0c 100644 --- a/doc/user/project/merge_requests/merge_when_pipeline_succeeds.md +++ b/doc/user/project/merge_requests/merge_when_pipeline_succeeds.md @@ -1,4 +1,4 @@ -# Merge When Pipeline Succeeds +# Merge when pipeline succeeds When reviewing a merge request that looks ready to merge but still has one or more CI jobs running, you can set it to be merged automatically when the -- GitLab From e7340349cd72d7e3ce1f7526caee9abaaba0fccd Mon Sep 17 00:00:00 2001 From: Evan Read Date: Fri, 15 Mar 2019 09:20:03 +1000 Subject: [PATCH 2/2] Review feedback implemented --- doc/ci/README.md | 2 +- doc/ci/pipelines.md | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/doc/ci/README.md b/doc/ci/README.md index a877c2483d0e49..257ab246128ee6 100644 --- a/doc/ci/README.md +++ b/doc/ci/README.md @@ -45,7 +45,7 @@ into more features: | Topic | Description | |:---------------------------------------------------------------------------------------------------------------------|:-----------------------------------------------------------------------------------------------------------------------------| -| [Introduction to pipelines and jobs](pipelines.md) | Provides an overview of GitLab CI/CD and jobs. | +| [Creating and using CI/CD pipelines](pipelines.md) | Understand, visualize, create, and use CI/CD pipelines. | | [CI/CD Variables](variables/README.md) | How environment variables can be configured and made available in pipelines. | | [Where variables can be used](variables/where_variables_can_be_used.md) | A deeper look into where and how CI/CD variables can be used. | | [User](../user/permissions.md#gitlab-cicd-permissions) and [job](../user/permissions.md#job-permissions) permissions | Learn about the access levels a user can have for performing certain CI actions. | diff --git a/doc/ci/pipelines.md b/doc/ci/pipelines.md index 34102385050825..afa38e95504b82 100644 --- a/doc/ci/pipelines.md +++ b/doc/ci/pipelines.md @@ -1,4 +1,4 @@ -# Creating and maintaining CI/CD pipelines +# Creating and using CI/CD pipelines > Introduced in GitLab 8.8. -- GitLab