From fdd52a6b237f22d06df38ba6fb879ae83c186a75 Mon Sep 17 00:00:00 2001 From: Grzegorz Bizon Date: Wed, 17 Aug 2016 16:58:23 +0200 Subject: [PATCH 1/5] Improve documentation for test coverage report badge [ci skip] --- doc/ci/pipelines.md | 10 +++++----- 1 file changed, 5 insertions(+), 5 deletions(-) diff --git a/doc/ci/pipelines.md b/doc/ci/pipelines.md index 729c1dc8c0d..a28f6f3ecdc 100644 --- a/doc/ci/pipelines.md +++ b/doc/ci/pipelines.md @@ -36,14 +36,14 @@ cancel the build, retry it, or erase the build trace. ## Badges -There are build status and test coverage report badges available. +Build status and test coverage report badges are available. Go to pipeline settings to see available badges and code you can use to embed -badges in the `README.md` or your website. +badges in the `README.md` or on the website. ### Build status badge -You can access a build status badge image using following link: +You can access a build status badge image using the following link: ``` http://example.gitlab.com/namespace/project/badges/branch/build.svg @@ -55,7 +55,7 @@ GitLab makes it possible to define the regular expression for coverage report, that each build log will be matched against. This means that each build in the pipeline can have the test coverage percentage value defined. -You can access test coverage badge using following link: +You can access the test coverage badge using following link: ``` http://example.gitlab.com/namespace/project/badges/branch/coverage.svg @@ -63,7 +63,7 @@ http://example.gitlab.com/namespace/project/badges/branch/coverage.svg If you would like to get the coverage report from the specific job, you can add a `job=coverage_job_name` parameter to the URL. For example, it is possible to -use following Markdown code to embed the est coverage report into `README.md`: +use following Markdown code to embed the test coverage report into `README.md`: ```markdown ![coverage](http://gitlab.com/gitlab-org/gitlab-ce/badges/master/coverage.svg?job=coverage) From 4392098e12328e07c4d007585288e61e8926640b Mon Sep 17 00:00:00 2001 From: Achilleas Pipinellis Date: Mon, 17 Oct 2016 17:00:30 +0200 Subject: [PATCH 2/5] Fully document the pipelines settings page --- doc/ci/README.md | 1 + doc/ci/pipelines.md | 49 ++------- .../project/img/project_settings_list.png | Bin 10788 -> 11404 bytes .../img/pipelines_settings_badges.png | Bin 0 -> 56166 bytes doc/user/project/pipelines/settings.md | 101 ++++++++++++++++++ 5 files changed, 111 insertions(+), 40 deletions(-) create mode 100644 doc/user/project/pipelines/img/pipelines_settings_badges.png create mode 100644 doc/user/project/pipelines/settings.md diff --git a/doc/ci/README.md b/doc/ci/README.md index 341bc85a16a..6b90940c047 100644 --- a/doc/ci/README.md +++ b/doc/ci/README.md @@ -19,4 +19,5 @@ - [Build permissions](../user/permissions.md#build-permissions) - [API](../api/ci/README.md) - [CI services (linked docker containers)](services/README.md) +- [CI/CD pipelines settings](../user/project/pipelines/settings.md) - [**New CI build permissions model**](../user/project/new_ci_build_permissions_model.md) Read about what changed in GitLab 8.12 and how that affects your builds. There's a new way to access your Git submodules and LFS objects in builds. diff --git a/doc/ci/pipelines.md b/doc/ci/pipelines.md index a28f6f3ecdc..7d100a4fd93 100644 --- a/doc/ci/pipelines.md +++ b/doc/ci/pipelines.md @@ -5,9 +5,9 @@ Introduced in GitLab 8.8. ## Pipelines -A pipeline is a group of [builds] that get executed in [stages] \(batches). All -of the builds in a stage are executed in parallel (if there are enough -concurrent [runners]), and if they all succeed, the pipeline moves on to the +A pipeline is a group of [builds][] that get executed in [stages][](batches). +All of the builds 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 builds fails, the next stage is not (usually) executed. @@ -25,8 +25,8 @@ See full [documentation](yaml/README.md#jobs). ## Seeing pipeline status -You can find the current and historical pipeline runs under **Pipelines** for your -project. +You can find the current and historical pipeline runs under **Pipelines** for +your project. ## Seeing build status @@ -36,42 +36,11 @@ cancel the build, retry it, or erase the build trace. ## Badges -Build status and test coverage report badges are available. - -Go to pipeline settings to see available badges and code you can use to embed -badges in the `README.md` or on the website. - -### Build status badge - -You can access a build status badge image using the following link: - -``` -http://example.gitlab.com/namespace/project/badges/branch/build.svg -``` - -### Test coverage report badge - -GitLab makes it possible to define the regular expression for coverage report, -that each build log will be matched against. This means that each build in the -pipeline can have the test coverage percentage value defined. - -You can access the test coverage badge using following link: - -``` -http://example.gitlab.com/namespace/project/badges/branch/coverage.svg -``` - -If you would like to get the coverage report from the specific job, you can add -a `job=coverage_job_name` parameter to the URL. For example, it is possible to -use following Markdown code to embed the test coverage report into `README.md`: - -```markdown -![coverage](http://gitlab.com/gitlab-org/gitlab-ce/badges/master/coverage.svg?job=coverage) -``` - -The latest successful pipeline will be used to read the test coverage value. +Build status and test coverage report badges are available. You can find their +respective link in the [Pipelines settings] page. [builds]: #builds [jobs]: yaml/README.md#jobs [stages]: yaml/README.md#stages -[runners]: runners/README.md +[runners]: runners/READM +[pipelines settings]: ../user/project/pipelines/settings.md diff --git a/doc/user/project/img/project_settings_list.png b/doc/user/project/img/project_settings_list.png index 57ca2ac5f9e56fceb89864c5074186fec562ded4..cd9f5c00eea85022dcbda9f8d847ff0c0ec49023 100644 GIT binary patch literal 11404 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 literal 10788 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 diff --git a/doc/user/project/pipelines/img/pipelines_settings_badges.png b/doc/user/project/pipelines/img/pipelines_settings_badges.png new file mode 100644 index 0000000000000000000000000000000000000000..d0c4640791d353c985fc23e036f3618e95c260ac GIT binary patch literal 56166 zcmbTdbySsI_cpqb?oD?~cc;XrLj>t=P`bM$Hh=3x3ba#VDOLup7!@0rdeSYsZ zzHgjy&d1n)uV zB}iUMLftccch18V*CUACyZL0k(cxhB;=IVpozzlfXKHG0YAVI&pooB*uc{Os!Hfv8 zL;`8HkcEm04k<)Q=J^K~FeMiR?gKZS85TS>%7?F-16gC+>T?EXjR6&P-x7tGsr|$@ zdzPu~Q9u4=+ed^Z|7}}G zi*Ne$jCwoq|J1O@glc@tm4TI2T2&RRodfNkPlGxmD{H9o_md)UQeq+m3`dBD5N1O7 z&&TTrHPSN$Ma4$u4rys=vU`O8{9r=ZHG_+XR|@9-Pe&Yc>?|Gseo?AML*@K;lo8f; zNZ-Fhy7rd*_iJ4L^O`4_1o(>zL)_=jF%=a&VQ){qe*Z3+rBd;`8&v-9D=TieDDdQB z{%9G>8x`8%O8gAv@V-7J2Hf}f54UCi)y#gb4!+TFVf$P7FQP`nSiNfd%FB(U(B%KD zuJ~hO;`p{j_%E`zZ{M=sUs+ID{_qVi*Nd$ zof6_<=@?bjh7$erU~A}~4n*E7e{cW%!Uv3l6C4;AsQhuG`@XXG`Nr;dhCzKai6QsP zi?pZt z#WA}9+mw~)=HUVV(}pYggoGvwp`beXold{*%LGRZ<;m9=hjN>8a`BL^e5YINyHkkm`h$&VmJ{drV{&J0 z)Y%{#%pQwYg-=sEOF@N|!)fD0ZBH;(cSk&(igww%7T04wsruFS1fuV2MsChUluI`7 zHfc|nS?u;u^1IS_R={@r7WCk+GAa3Vk3f7~)})lCJ@JWi;9ly`LB zsW37Hh(>aiyYjw(ewlN@Nk11qXx+h`ZH{5)FE{2OoMrB?X<+Zr(OYg{s+zZ-(B0Zx z?)^ubN6wbtQhg@Di;+yw-C5~orZe5w+4u$rB4_1~ECQ_~T z8((mvaHXK(U~`*r@UXX>qm(Ke1d{byQt@zrRB<*;CYCvsQJw6k{ri$Rh+*#EL5aoC zd*~e`=m{Nt6?mR)56bA3mCGRqw+1fv*-X}$^JTY5g2A}&-=gv@ru-4Hl%1(PxlfPo z{^<9@v;!#|X3@1a=Zz9JWKE3c#$`k-~a*;wvgigL=MDk%Yzj$gGk^Ucbgnke8 z+_;o`p8mU3w28xoMN{mjb8SW=WH$NvHWnFvP=*C@_|B@~eB@gk85$lD>?6ha!!P>b zH!fyiQc~OgnoA#0VBM|HWRo{lmy9%}h%<{Ool%unVQ{Hx^2rFvuSQBUU#7+;M{qlR(;l;(I$UbsTQ4YXdIk#b&9LKlzxBLTd9bRK zhd^yZ=FXnWJ6;N#&D0T*T`v#NY zJ_<1L!_aQ|k616(n9vYlqhwCbU#V#sAEfLsFcm|VK4x;#vEcfUWcY~^l7yE05+IfL zftJ00tuI!FO_ink>kn~ZFA2eNRN)A?-jp5p8?TDS8jZz(K%bb-;<^9MdnE|^{#=cw z(R(BDIO2q*3Z7XX!)4bSHVr5Vy}7H1ebPkclwBx9U(0FW`f_pwg%FNad4OoI1k8-e zpT<5zUJJ6YesP-0C8EXWTeQ1%M6+jjt^d)7=)$?cgo98eLoj&ufi9&QMwS8rr+h8mL4kX*|iYGvUVfBk>EXY}+RI(FnrDc9p&Sp;Ds?b#n_9 zsC7VHSBjR_{?hD*CTN|}zBlU~z}7V)aD(4TCE$w|v!Twf$7egqQGa#Z%ib@hqDXTz zWtF*P)2yw&IhKsg@yy5{2PsFi*<|irFlEXpA)hTF0tV?DwpN;3+j|jeW8&>o3nG51xE5j)WKn-SCKDu8JHaM7ncVGf8bFy7JC~?^*5%Ad-pxh#h zY5wnXg;M%_yHvyySJ`UfSv*#3fGCu6X=(DI24O6A!n7}$bDXD9eO#4_Z=6vz{^1z` zrUOK3)!du`KD^kC*Nd^Ot=qIerrq=Pv?E3N9fXDI;$Gvctzozz5bo)FGSJz*NyeI) zf6+FPE49+?_9~TiBJn%r^XH^E^vbq!wrHlye5Y4ESDNUz`4lquLyCV0g4uXB4|Pi1mV1 zfAp0p_I+lqXO|KVBmjwsiq;)p#C7PVogEzTvd>g+q9bJ^$G%>0uiL%MUudCx|I4*> zKEmL87CUBlu-`+VFk^H3y3PYm+$l!)!hbmw`p}vpM^u@YlV&IS^AS_f_rlM5^4`7v zQIWe9I#{$%g%DT(IFIV<(vgYRcos{)2F9RBkx~lY@SvN}ONBpZQSbGFPWUOZ6zp2= zYB`fD=DnzzINtK)+WODi*5=w0K-#iRcIT_nge@35_Y+ONMBAxj3bNx*c8T zT3q?Ygj7dt3&n6Vgq|_&tf;LqBv{sz>CBrc))7YCX zpMk*Z8gcQymZVy`H`cPwovMai?` zfFhkuxa#;Nq15o2HzUcbRu#N?j>NSGlK;cT^Lda_n^nz-Xq_1&Q+FS@*4hE~Dq`Bw z>cau+=fLFJi#cM&{U3tR_j8ya&n7#jZ2AXV13DC1BxK~)Xqj@-dZvze?eHEf6YY;W zbGEhenUN)NU{aPtUxeL#DK5cGjk+IzPiUuC?y7jJhQ-ZPb3Z?0oX*bu3av8RKcnTt z3Kl;d?y-372*j3ykfZQk$y&Sb86g~*=4fUk`uk*PEjOJ|hI+x_AEuL4ZL<{)hXM6p zYtC?RF%myCF@sw{okuBW@G}%RbX|)oKTx*wcjAEPvKO|*ykEDEkZkrRcxGlG<6^^F zWZx3dXm@Vo77(bVze50xhzqVsLQOSaZAo^D!}tCQw7LVY6n|p^v^tEO!|eIm6-Om` z*hygYW#BoL@uW(c*u@D^s8GL)6b64LRpLuQ7kvz(!=E6fciA?VZ0WEvexv}u1DXb?h`a9x7AkatKlv+1P z{=o5;%+JyEDI<9s>-icgElHFs6JpYP6}~=5RrI^-IwFVTLHl#NT}8ewLxRGr60|i$ zy84Sclj?WgED=9=nOAzzX|XP$Kgf{Vw?z&a|&1g{j0W}^v}?PQhF&3$GOIwer& zk0KLe7+80W+@{O8YJg zE1AoKXkdZ8yh!bX7wJcta2iSuT<*kOsqv2*Y^YAHYh;8trn;tNM%X&*+LAeAKx2Fs;cPc2omaeENS_H}gwuyhPf9o`DI4P~&jYbkC<3+TD&f!hJDl;+Bp*d8_lk^yC*iN(95h#xC{h`gJTR5vc`+3K>fXP~ zy1c(RSXx;L{u26wfyMJZiB|FQY7u;#lH2&+wi5QOU-;y0ZNS4ll2Hu-iZp(aLF0Ru zo20+4YJY!Wx_`-{7&frqgpB&Nnu1^bO_WaKkjjmlgz{%Hgn?(p=r@T=MhDk0$`1m+e)GyV}jGc(Fxin2u(WpJ^Tk(`g zQqu|lq~ONHB)zGwO%Zdw0paLs0ik>4 z59G2Jb|G2TP3=b>r~hW#K;lMc&C1ddB}*jY>G-`b!@!{lSN@eh&Z{zZNi{cu)NQN0 z9b>Igmk+djN_Vs| zY!8(qXTtxJN1IUP#9za7NrC-`9ZrbKuvw=RGSEj$w}=prLmn#FmFRYhovB_>Cti4K=lQ4;~(#M9#2y z@kIL@p0dYIr$#Ek1!LCa-2iB4=nP?PoOI{PmLhF|iU9MONIH!PJVa?Z>I_ppopTskamul1pTEGnm}3k~clQjETtAB+66vNCHBNU)w>5;&Lo(d3{nj0>m$%vRGs_;Y8Ff+*zh zs2eo-nW~YL1SUnvGFpVP;U1OHaZMcCKPpCC+!%?D{yDWGqjoiBv~pK4w=f4M6X`pu z584T-CLXiv#g$lAYU7kbB1l;uR!Y}8VAIxc_(i3!TcrSJXY8!N2l{e6<@TI4Em+m0 z6$ydK&8I zEtWpLI#$^+>Z5tLh7F!r69@X$Ug@95uDcDMuw{Ng1$e8OxCrlIJ_z{9zRPVE%~y=4 z`q&faSdIpY3vd-$brytlKZgY=L8yR#b90$MllaTaJ6a`nN(=zBcb*{{c|yPj3o5dM z1_PPr=`Nn!R3jO8w{ojX^l)9HK6%t)-VeFy^pJ>Fn7H0Mr{aMj+u0EaEHDO`oS#DY zbv&oA5FCJp)t76GuSsAzA;rA!erMM0^i2sBBp}94oI^L*UG+)bR>zXO_Y}64ub4UM zhQ?c&dLUgmn07de&+N_CWh8rF)x6m58wx?P9P^IZLrOT=f$oG;wA%_F7+{ji{Ch1a z-xV;MZ=~#6&!bB0h}dk;50q@4&ct7VyVYuOczvzak4Xo|zMwCLyybbIW+X~LI!`iF zYBK<}Ow}ND?CB%b1|X@^A-hTI0lFBcpA9o~OFkX-Bgd8vk)N+Due-iB%I&ouD38hF?Fw*m{@R~1n|t$Xj4(P?764e2of_^%9eP5< zYf05e61=l9=p#Ji+^2HUjFf!>t5RM^J{pi;fIE~rkLV)S7jDEXHh1 z&`KBzrq}8Mp}@FV!#x;@Y4Y*p9_(b@br#6U9CX;uwWO^d3dov@@`nj^Mf`h0j#|+# zFlS}}tz?KGz9qyCROLRGwD_d**$WNW15}4kQ)D=*H!DOyr6XGzD1H3GL%w*$8m2_o z{&kfA6u2?tAELh>`zN0V$O~|h=~zgKLWsIgoEX`jW#v?BSG#LK6QvTH{oP^G#*{r z?kU>59=L{cf$c2^cqqX=v?TcCXr4BF)VNeP+lMEUKE}_|Z zH!9@{QBBcT?|{>?drj|dgbE6oE;zGzs6DGqG1(_rPK;^3{IhGBDK=|MQOnsSjn$g$ z#YOS^Jy)K9Fs~c6yH!e}KravAn!W>u(Ogl>4Y}1>a1~}Lx!x6z?|Bi#_6_CgF^H61 z9Tp@dDfn#FIV1+PH5u+Cs%LEr842nAyJr0uUUp(SXKP)g$bms%9_=;XW*k?)T=nfm zz`4Lgr8MLFTby`2%oGV2wcbAg{3^cg`pI$kmZENJa(|#MC`I-xa zb(_>R0p)w91e4UWfN_t?9Jl}%an$mBV#u3r~g-em653d-f~UhmOz8QXf`Amj7Jj7jmbn7 z(@A}@i69jYPt9Pc;;35ayuQhavspm;% zJ9qh(2T6G}&>-UrFNrs4Zz};O+3;m#>x*Uq)q6YM1u`r*J`qVJDKhEehN0bi6Nfjy zV<2ovE0)pU9Od!`nvnoSi6F_W@=TXvrvc0}d!9N|qDi*>V=N$~(37x!f$1ZeP>%(i z8%4Fjl`T~GvP{vA)-yHAB*bO)4|RAl3a7^=RCLEduX}v#pmiibAKMICxqQt5lfu+& z2YRtJn@GTPkuYK*x7luTy~}HVM*T{`I9`t-zzy)`KM_L1qsP7bH+*3I1XRYJJ?n&u0sLWX(FYS(M0xPbgc=RmUMd6_}p@8r+SL`!dtH6pfyXnLcj5B}wF{ROC>8@Ma6@9n#yP5Pp97K1tQyJB!G3hij+kr4OEq8@B>mYi zekzKaOL4TxJU~}sZFD`Xnxy{siMO4aT?vTU;hy8B^_q?4;6dl&LS<3Ar*W6*>j`Mq zMm2B~HL@3vETj-FX}*0Ks1tFsC6rMniVogFA&drK8z{v=X7mRq`Ju6eVqcp(DLCoA zuF7zBl}{f-=a~H~7(2E|R=`5;jQi$mSpvd1dX_TO*5fdsz+7AQTiBeRwD(i%0#dJt zB04XaVL&o_+`rb|<>j*v{V;0><6=d+#43Q~e#xaoE&jr@t1=Q6#y8F04}Wwdc{?Ul z_E~_Z<2W;B%O@{txzxaf0TFzUZCi3?CGU%L_wG6UHi@J(pJC>gF2sk%$^6G|ycE|| z1$=r-4N0Zt3?h3i=p(EnM=#&1pDYQ)xEOZ?)w8d)3c zs(@M{EXXz%qjS)Mz^u>r=SZbU zg&&OvMasm;`GGNv#cdLA{2i>QGFu;%L858WwW=M3a@rkIsZ&`kQScuw!1y;{{Tw?D zd!q7WBw;C54kj|%l+@odN<@o)Ou_<(vQ8$n!ij49(_V-^x$z5FTh0J;@cII8CcG#v zPRvx2A|-JF7O^M}!kHgjC_M=D`FR(${Rwxt8IE-^;Bm9E@6nt+0Db@OBW2Fm0XiI6 zm3zKm7>R7d4a39Uk%Uc8!($0EU>FeiTL^Z)Q`V%7cp_AQk_E*5k=?}95ro0iSFU68 zJDw`3clZ*n(2i;z21ru6=oWfIX@WV#a-Mo0hbB#jl%n`Gf0i4}341rqBtmAxB zmsz4R|>DHSK!Aj6t&n|gp+2|qGwZ5^Km?BMahYR_AWGX{Ebg4ZS;L-&>_f% z5wYD@_FOBqP3sN)7w$u=!Wa{GUPq3nnA(wD^(t2bl(=l3^XIU3?D1H%4w+Dja5WlG){oZm*%+uaK_!<#UKuYw(r~yBo8&2BOXXnGW82Y> z)itrIf3WjM&=B1E<~7P)bB5<>;YJ`}k-n(cu7}A~@gu67a;@_vO2b>qX0)2SQk&`fb{(yxNqx zes+9rE+R@G7?6%G+l{T&OZGt>Q?-7LP{|#o@Z^GB;twjv8u?RB zHICnRH$JcR2N^R5-Rv#rs}r0HKIW2c`VbmQhA!PAxP;nGWo;`xQf;VRl+xuM_uBx) zm}!IcGO$r!>!(rH%X+W!qwO-cYs*hxSIgo zKAN#ZhyO$Q$<+Ke-7S*|#(nQB+--M^q})W>?EL)Ly%TR!7b%`;);W`R(+%6e_+}cb zS`#-?sN#N>kgEu8^VPHWV(?i^l}quSWA(vyY*+pMl@!NK${s#mXUzeTZD(6~gnal{ z2QlLNMi5oMufxsFbm-Py%98UGO^^W_BkF@3?NLLU%d65M45D|tS~pXE3;1Ed+#gQ9 zdy%syxn40muswUv-z2_Yzw)I{En?T`JUoB4p}529#CBe9L^0Q(F<@uHNd-#l#>W&U zOLM_WvD$Eij)K4*WH@%n+ZQSTn;^mY>%JeS` zn0i~^tB<$bY*2~DZ1hROZggdJ4EJ`y1%Jisj%Be3g@O`d#RJhvTGODK&nzP?E)skv zA`v2y*Lk|PBf``%cyQ42pzZaHy+Q^=%~j^#7GTr>KR%qIRO9N3?q9i%PNEs!8F8#XFaoRv!~6pb zZ+9jH_jIV}Gjx~#mQt5}jzgTE52^ORAm}SW-&>K;hRC(w9tcz$uV}vXa1JsWi+qIc zPBevQ-QSo^;vjYg6a{4|V9L>L#@dMwP;~Rwf1R?R;(M!ld&91J%M$S(?X*~=|Mjynq*&Uu*RA_0#Abf*=E++&}IYw;e9Tx(94M(ZsN~z zQJ4McI+t1gLHrY;lS<$H)-|Z^s{uuSY2W^HwURdp*w-y9oTJ`K0@aPxh0iwK69NsZ zI>i&&Uxz2Wj~to(OD_XwX6mQK_M-;dRH>STT{y1MM9n=&)`WxOF81(t%;fLj9<6F! z{*s~D+@Q1BYe!AMDSKXp>%*9o-QU&;rWlOy1h+Q-rvB=}y zk5af;QA1BsLM0aQX{5lde(&`cAbX5wfwS#oaYcSR_uIxjsg|kZ;lwqo-^D+2eQD(e zKpE^bpwgyRbcSnk=wN(@_fxI&qe)07^i%Iv@?JuCETb`49zabV6A3I;nMS-^me9HIPXU$nefI@6+Zs* z`c3!PB?~G3GUZ0-q-Ek(6+;Ji=Cp{`H9M^8r|HcFV^z$%Z@qb+tI*&Bh@rEw1QOPK zGc{&mc4CmD=0xvOeaJa`8m?*oi91UN_51mAiTj$5VD$BkXj!u~f@PgSThycG%SEp; zpU_F?IDA?c;)j$ce0V%^bk&o&Rz#s35b-y_d~+9}9640+u=&v4x(~3xeR>N6ve9B~ zF;eDDml(GuuiT~`2}l+uF=8fWODSR!+XA#nhJj=c|D$}w#Cl)bADPT@JGP40G&^Rb z(8my?fTYmpyoCudwC3tOaOZAi09Ym7vd__iV59kTBjmPxZqI;K3lMWHEE~TF714*A zt__CXpAUk3TXus;JH2r?*BdJMHg<;HOSB_0v?vSL&l0x!>6e|Yyp|4{#Cz6IcFc~p z5ZF;mSMFdZ**jhv;FlTgg-^$aUF4%*IA}s$nw4xAIuOV{H_v0%dMN0VcN0@2zr;4i zg^~1w`v}(x_e9dtCGGL{<$b?yX1`*(3y?BD5KQNTwQ%RV-|M~FV{_4jCjHb8G-5G$ z=SRx~!uD@!#C#Y`U;9<~psR)Pvkfqw#6rj*B{`uo^argK#h@Mf)H0=fH%aD6B@qi9 z`zzAr*TH)o>OI1VO9z@{5{WY6(fPO^Ncfi$EtHfPMBk7#YqN^m;u~A zqWe5d>zGCM9SbZx2m5-V52+>dmVcOK zXX?uXW{EOGa{!W{1+KTB(4YMqkMCgAf}FUM@E-7SzA+O^=zZN@0^C3%^8!&wdUKTc zT!u3U+f~ns=Elv4@O1rX!hb(9C_+qPH0^t5;E@mJCOkxt&tVlnwV74uIJ z(wk^(9vNh78WnoEJnp}A%Vnf>vw|)L37b!pqe*5T8ERQN0Zhs8O##GL%+9QwI}LvT zD{hyySI$zX|-a>;+565Fz`9_s}L+D zQJUZL546p?Ctw-L(Dt>&ST^iaX~HH8^n1&5+lD4<9PE?c$Dk#~IxVxOT(+25%F!9y zKY;`D!ERr_q0t=`-*Rf+#v1(oaIY)jvbfxGsd>;S#G{JO*YG4muluMT{^W2bfqBVg zl_~#J`qC(JW2wJVcy4-r>)y%57av2+UEU4n#eyHf2ASV(d?bYBN9LD`Vln6YdzaOQ zyB8?UsWvCXf29^AIH9sd0N<%+Bz}~nqE6vZBc=b^GRt@K&1w@bSkM7O%CMMll+@w= zpnMKun+IuiXciwcKn$SQXGNqOv&?c8rv!wG;zgkpxUGEmq65!c95>bPYdmdjK;z=^ zo#M1eI3T=K`OJ!EUd_!69JvH20CrW3ZJESl7W(9l;kgF2aU;Z{A!&_S1 zZ}ceX{=4yZM2TOxVcZaq6(k@D%2MByA+?&26iulV&8Gr=*AA3nLLqNdK5slNw$csZ zq;!H(flU#pBz+(dnxP#T^%7v}0F_u=S`o%O7G%hpe|Pk7jz5lRSIiN9z2XBs^KR4& zouq8j4J&Y^{>?*;vLm(nLyEz=zvqb?+_j?}^WBT-gtJPCCR>4?kEwHjJ;M@!ZXk*% zrLQ^K%()~^OD1(uoW9A2sNw>J=v+Qit`uXg6i3a`EDen`KSA6Q9_b*H-Ku zU6GMrJedincXeC7O3!`zpmO`xP!_X*=oL!o+Gi69TZZnVuNUZ*$ND zf3#ga3$DaPjoxRh0dAVrdmLK-AsSOvZlbi8ji2%DZ9LR2_rD3A$}~ zBXEsaB<=Hg^I$iWFq{1M(Ma6QdD1U0Kg#2q!9XF|k>MQcE`aUvv)M|UQI25*O6Up+ zjXEB18&3mJgo0WF%MK5Eb>O)Q%DT_{XleioDmcys;|%xq1Mww#wwH4(Q^pl`5$5Zw z0|Wr$^tq(eh-eeS8uLCePek~Tq=Zw+^qBE?&p~D{?@cPP01^FC1AIOfR%H_A>x5rw zDfFf4BpC~`eSjl`e`*R)UXuGLU{#9}zT{avf?U?@z&2#%@eYa_(9409VysdhxBl59 zEVbfA#rG;tBNy+f^fdk98#w9h4*fXS5gIU2fTO?d4={(Zou2~R>3+l?3ag{<8AcR< zV{P|8Aey%zkYH4nVz76_!*FK$LASINA2Uy;02uGn&3E*~gQCPTT5f;V&BE2m{pFmG z`7=#B!syBEMzU%GW;E&Nnt|?sfDRFuJ>U3nXwBuax$mSHMvV7|g0&dJQIFDq2mjIJ z)BuH|I&&IP67Sa5L~5XXSoTJ%n!$Fq*{+~`-{=X1t1?j;pY&^zd3(71Sh1Vdmc=)f zA2oB$#N^nKNzv+UOz@x{mCxcBNj%s)4voHNPshu zA=4i4Hd3I`p4#{Bwp1)jZ1wrE)XiTplsRbE4LIRgA4_DYr`L#Olc1#~�`e6Z_k1y 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 literal 0 HcmV?d00001 diff --git a/doc/user/project/pipelines/settings.md b/doc/user/project/pipelines/settings.md new file mode 100644 index 00000000000..9641792d0bb --- /dev/null +++ b/doc/user/project/pipelines/settings.md @@ -0,0 +1,101 @@ +# CI/CD pipelines settings + +To reach the pipelines settings: + +1. Navigate to your project and click the cog icon in the upper right corner. + + ![Project settings menu](../img/project_settings_list.png) + +1. Select **CI/CD Pipelines** from the menu. + +The following settings can be configured per project. + +## Git strategy + +With Git strategy, you can choose the default way your repository is fetched +from GitLab in a job. + +There are two options: + +- Using `git clone` which is slower since it clones the repository from scratch + for every job, ensuring that the project workspace is always pristine. +- Using `git fetch` which is faster as it re-uses the project workspace (falling + back to clone if it doesn't exist). + +The default Git strategy can be overridden by the [GIT_STRATEGY variable][var] +in `.gitlab-ci.yml`. + +## Timeout + +Timeout defines the maximum amount of time in minutes that a job is able run. +The default value is 60 minutes. Decrease the time limit if you want to impose +a hard limit on your jobs' running time or increase it otherwise. In any case, +if the job surpasses the threshold, it is marked as failed. + +## Test coverage parsing + +If you use test coverage in your code, GitLab can capture its output in the +build trace using a regular expression. Leave blank if you want to disable it +or enter a ruby regular expression. You can use http://rubular.com to test your +regex. + +A few examples can be found in the settings page. + +## Visibility of pipelines + +For public and internal projects, the **Pipelines** page can be accessed by +anyone and those logged in respectively. If you wish to hide it so that only +the members of the project or group have access to it, uncheck the **Public +pipelines** checkbox and save the changes. + +## Badges + +In the pipelines settings page you can find build status and test coverage +badges for your project. The latest successful pipeline will be used to read +the build status and test coverage values. + +Visit the **Pipelines** settings page in your project to see the exact link to +your badges, as well as ways to embed the badge image in your HTML or Markdown +pages. + +![Pipelines badges](img/pipelines_settings_badges.png) + +### Build status badge + +Depending on the status of your build, a badge can have the following values: + +- running +- success +- failed +- skipped +- unknown + +You can access a build status badge image using the following link: + +``` +https://example.gitlab.com///badges//build.svg +``` + +### Test coverage report badge + +GitLab makes it possible to define the regular expression for [coverage report], +that each build log will be matched against. This means that each build in the +pipeline can have the test coverage percentage value defined. + +The test coverage badge can be accessed using following link: + +``` +https://example.gitlab.com///badges//coverage.svg +``` + +If you would like to get the coverage report from a specific job, you can add +the `job=coverage_job_name` parameter to the URL. For example, the following +Markdown code will embed the test coverage report badge of the `coverage` job +into your `README.md`: + +```markdown +![coverage](https://gitlab.com/gitlab-org/gitlab-ce/badges/master/coverage.svg?job=coverage) +``` + +[var]: ../../../ci/yaml/README.md#git-strategy +[coverage report]: #test-coverage-parsing From ea8b4edb6eb4258d1d89cde8530825fd99691b54 Mon Sep 17 00:00:00 2001 From: Achilleas Pipinellis Date: Mon, 17 Oct 2016 17:00:49 +0200 Subject: [PATCH 3/5] Rearrange the Pipelines settings page sections and link to docs --- .../pipelines_settings/show.html.haml | 53 ++++++++++++------- 1 file changed, 34 insertions(+), 19 deletions(-) diff --git a/app/views/projects/pipelines_settings/show.html.haml b/app/views/projects/pipelines_settings/show.html.haml index bebf0ccd54d..5a8a6f1553d 100644 --- a/app/views/projects/pipelines_settings/show.html.haml +++ b/app/views/projects/pipelines_settings/show.html.haml @@ -5,33 +5,59 @@ %h4.prepend-top-0 = page_title .col-lg-9 - %h5.prepend-top-0 - Pipelines = form_for @project, url: namespace_project_pipelines_settings_path(@project.namespace.becomes(Namespace), @project) do |f| %fieldset.builds-feature - unless @repository.gitlab_ci_yml .form-group %p Pipelines need to be configured before you can begin using Continuous Integration. = link_to 'Get started with CI/CD Pipelines', help_page_path('ci/quick_start/README'), class: 'btn btn-info' + %hr + .form-group.append-bottom-default + = f.label :runners_token, "Runner token", class: 'label-light' + = f.text_field :runners_token, class: "form-control", placeholder: 'xEeFCaDAB89' + %p.help-block The secure token used by the Runner to checkout the project + + %hr .form-group - %p Get recent application code using the following command: + %h5.prepend-top-0 + Git strategy for pipelines + %p + Choose between clone or fetch to get the recent application code + = link_to icon('question-circle'), help_page_path('user/project/pipelines/settings', anchor: 'git-strategy') .radio = f.label :build_allow_git_fetch_false do = f.radio_button :build_allow_git_fetch, 'false' %strong git clone %br - %span.descr Slower but makes sure you have a clean dir before every build + %span.descr + Slower but makes sure the project workspace is pristine as it clones the repository from scratch for every job .radio = f.label :build_allow_git_fetch_true do = f.radio_button :build_allow_git_fetch, 'true' %strong git fetch %br - %span.descr Faster + %span.descr + Faster as it re-uses the project workspace (falling back to clone if it doesn't exist) + %hr .form-group = f.label :build_timeout_in_minutes, 'Timeout', class: 'label-light' = f.number_field :build_timeout_in_minutes, class: 'form-control', min: '0' - %p.help-block per build in minutes + %p.help-block + Per job in minutes. If a job passes this threshold, it will be marked as failed. + = link_to icon('question-circle'), help_page_path('user/project/pipelines/settings', anchor: 'timeout') + + %hr + .form-group + .checkbox + = f.label :public_builds do + = f.check_box :public_builds + %strong Public pipelines + .help-block + Allow everyone to access pipelines for public and internal projects + = link_to icon('question-circle'), help_page_path('user/project/pipelines/settings', anchor: 'visibility-of-pipelines') + + %hr .form-group = f.label :build_coverage_regex, "Test coverage parsing", class: 'label-light' .input-group @@ -41,6 +67,7 @@ %p.help-block We will use this regular expression to find test coverage output in build trace. Leave blank if you want to disable this feature + = link_to icon('question-circle'), help_page_path('user/project/pipelines/settings', anchor: 'test-coverage-parsing') .bs-callout.bs-callout-info %p Below are examples of regex for existing tools: %ul @@ -57,21 +84,9 @@ gcovr (C/C++) - %code ^TOTAL.*\s+(\d+\%)$ %li - tap --coverage-report=text-summary (Node.js) - + tap --coverage-report=text-summary (NodeJS) - %code ^Statements\s*:\s*([^%]+) - .form-group - .checkbox - = f.label :public_builds do - = f.check_box :public_builds - %strong Public builds - .help-block Allow everyone to access builds traces for Public and Internal projects - - .form-group.append-bottom-default - = f.label :runners_token, "Runners token", class: 'label-light' - = f.text_field :runners_token, class: "form-control", placeholder: 'xEeFCaDAB89' - %p.help-block The secure token used to checkout project. - = f.submit 'Save changes', class: "btn btn-save" %hr From 0995d5573d78d9656c87783f53860e648ff7b039 Mon Sep 17 00:00:00 2001 From: Achilleas Pipinellis Date: Mon, 17 Oct 2016 20:27:15 +0200 Subject: [PATCH 4/5] Use better wording for test coverage parsing help text --- app/views/projects/pipelines_settings/show.html.haml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/app/views/projects/pipelines_settings/show.html.haml b/app/views/projects/pipelines_settings/show.html.haml index 5a8a6f1553d..96221a20502 100644 --- a/app/views/projects/pipelines_settings/show.html.haml +++ b/app/views/projects/pipelines_settings/show.html.haml @@ -65,8 +65,8 @@ = f.text_field :build_coverage_regex, class: 'form-control', placeholder: '\(\d+.\d+\%\) covered' %span.input-group-addon / %p.help-block - We will use this regular expression to find test coverage output in build trace. - Leave blank if you want to disable this feature + A regular expression that will be used to find the test coverage + output in the build trace. Leave blank to disable = link_to icon('question-circle'), help_page_path('user/project/pipelines/settings', anchor: 'test-coverage-parsing') .bs-callout.bs-callout-info %p Below are examples of regex for existing tools: From 6309fbf120c9f1c152645fb5cc6053b3a04edc6c Mon Sep 17 00:00:00 2001 From: Achilleas Pipinellis Date: Mon, 17 Oct 2016 20:41:24 +0200 Subject: [PATCH 5/5] Add more images for the test coverage docs --- .../img/pipelines_settings_test_coverage.png | Bin 0 -> 4212 bytes .../img/pipelines_test_coverage_build.png | Bin 0 -> 9953 bytes .../img/pipelines_test_coverage_mr_widget.png | Bin 0 -> 14502 bytes doc/user/project/pipelines/settings.md | 24 +++++++++++++----- 4 files changed, 18 insertions(+), 6 deletions(-) create mode 100644 doc/user/project/pipelines/img/pipelines_settings_test_coverage.png create mode 100644 doc/user/project/pipelines/img/pipelines_test_coverage_build.png create mode 100644 doc/user/project/pipelines/img/pipelines_test_coverage_mr_widget.png diff --git a/doc/user/project/pipelines/img/pipelines_settings_test_coverage.png b/doc/user/project/pipelines/img/pipelines_settings_test_coverage.png new file mode 100644 index 0000000000000000000000000000000000000000..d2a5568521ff4f3184f686adad56b3ca3c3eca3a GIT binary patch literal 4212 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 RH2H4=KwsAwTC3xf@LxE-@a6yj literal 0 HcmV?d00001 diff --git a/doc/user/project/pipelines/img/pipelines_test_coverage_build.png b/doc/user/project/pipelines/img/pipelines_test_coverage_build.png new file mode 100644 index 0000000000000000000000000000000000000000..3823100daf25f15f7c545f3e94b7fbefc213831f GIT binary patch literal 9953 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 Q(KWya8D(Illwt6H0Rm9`lK=n! literal 0 HcmV?d00001 diff --git a/doc/user/project/pipelines/img/pipelines_test_coverage_mr_widget.png b/doc/user/project/pipelines/img/pipelines_test_coverage_mr_widget.png new file mode 100644 index 0000000000000000000000000000000000000000..c4f78803e6979122cfa11e903ad51374dbceab7e GIT binary patch literal 14502 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
    EYuTcO65BeR8dh=!pVKs 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 MLQ%X_)X@L`03Ji|mH+?% literal 0 HcmV?d00001 diff --git a/doc/user/project/pipelines/settings.md b/doc/user/project/pipelines/settings.md index 9641792d0bb..6cbcf3c400f 100644 --- a/doc/user/project/pipelines/settings.md +++ b/doc/user/project/pipelines/settings.md @@ -35,15 +35,27 @@ if the job surpasses the threshold, it is marked as failed. ## Test coverage parsing If you use test coverage in your code, GitLab can capture its output in the -build trace using a regular expression. Leave blank if you want to disable it -or enter a ruby regular expression. You can use http://rubular.com to test your -regex. +build log using a regular expression. In the pipelines settings, search for the +"Test coverage parsing" section. -A few examples can be found in the settings page. +![Pipelines settings test coverage](img/pipelines_settings_test_coverage.png) + +Leave blank if you want to disable it or enter a ruby regular expression. You +can use http://rubular.com to test your regex. + +If the pipeline succeeds, the coverage is shown in the merge request widget and +in the builds table. + +![MR widget coverage](img/pipelines_test_coverage_mr_widget.png) + +![Build status coverage](img/pipelines_test_coverage_build.png) + +A few examples of known coverage tools for a variety of languages can be found +in the pipelines settings page. ## Visibility of pipelines -For public and internal projects, the **Pipelines** page can be accessed by +For public and internal projects, the pipelines page can be accessed by anyone and those logged in respectively. If you wish to hide it so that only the members of the project or group have access to it, uncheck the **Public pipelines** checkbox and save the changes. @@ -54,7 +66,7 @@ In the pipelines settings page you can find build status and test coverage badges for your project. The latest successful pipeline will be used to read the build status and test coverage values. -Visit the **Pipelines** settings page in your project to see the exact link to +Visit the pipelines settings page in your project to see the exact link to your badges, as well as ways to embed the badge image in your HTML or Markdown pages.