±à¼ÍƼö: |
±¾ÎĽéÉÜÁË»úƱAPPÖ÷Á÷³ÌCI/CD¡¢CI¼ìÑéÍêÉÆ¡¢UI×Ô¶¯»¯²âÊÔ¼°¼¯³É×Ô¶¯·¢²¼ºÍUI²âÊÔ
¡£
±¾ÎÄÀ´×ÔÓÚCSDN£¬ÓÉ»ðÁú¹ûÈí¼þLinda±à¼ÍƼö¡£ |
|
Ò»¡¢Ç°ÑÔ
Ëæ×ÅЯ³Ì»úƱAPPÈ«Á÷³ÌÓÉNative¼¼ÊõջתÏòRN£¨React Native£¬ÒÔϾù³ÆRN£©£¬Í¬Ê±ÒýÈëÁËBDDµÄÃô½Ý¿ª·¢Ä£Ê½£¬ÒÔÓ¦¶ÔÈÕÒæÔö³¤µÄ²úÆ·ÐèÇ󡣸ßËٵĿª·¢µü´ú¹ý³ÌÖУ¬ÈçºÎÈ·±£Îȶ¨ÇҿɳÖÐøµÄ½»¸¶ÖÊÁ¿£¬ÏÔµÃÓÈÎªÖØÒª¡£±¾ÆªÖ¼ÔÚ½éÉÜЯ³Ì»úƱAPPÖ÷Á÷³ÌÍŶÓʹÓÃÓëÉý¼¶³ÖÐø¼¯³É/³ÖÐø½»¸¶£¨ÒÔϾù³ÆCI/CD£©À´¼æ¹Ëǰ¶Ë¿ª·¢¸ßЧÂʼ°¸ßÖÊÁ¿µÄʵ¼ù¡£
¶þ¡¢»úƱAPPÖ÷Á÷³ÌCI/CD
2.1 ³ÖÐø¼¯³É/³ÖÐø½»¸¶
ÔÚÈí¼þ¹¤³ÌÖУ¬³ÖÐø¼¯³ÉÊÇÒ»ÖÖÔÚ±£Ö¤ÖÊÁ¿µÄǰÌáϽ«Ã¿ÌìÐÂÔö´úÂëºÏ²¢µ½¹²ÏíÖ÷ÏßÖеÄ×ö·¨¡£³ÖÐø½»¸¶ÊÇÒ»ÖÖÄܹ»Ê¹µÃÈí¼þÔڽ϶̵ÄÑ»·Öпɿ¿·¢²¼µÄ·½·¨¡£
´«Í³µÄ³ÖÐø½»¸¶¹ý³Ì×ÅÖØÓÚ´úÂëµÄ°²È«½»¸¶£¬¶ÔÓÚ³ÖÐø½»¸¶Á÷³ÌµÄÖ´ÐÐЧÂÊûÓÐ×ã¹»ÖØÊÓ£¬ÍùÍùʹµÃÕû¸ö³ÖÐø½»¸¶¹ý³Ìʱ¼ä³É±¾¹ý¸ß¡£¶ÔÓÚǰ¶Ë¹¤³Ì¶øÑÔ£¬´«Í³µÄ³ÖÐø½»¸¶È±·¦¿ìËÙ¡¢±ã½Ý¡¢¼°Ê±ÏìÓ¦µÄUI×Ô¶¯»¯²âÊÔ·½°¸£¬Ò³ÃæÕ¹Ê¾µÄÕýÈ·ÐÔÄÑÒԵõ½±£ÕÏ¡£
Ãæ¶ÔÕâЩÎÊÌ⣬Я³Ì»úƱͨ¹ý²ÉÓøüΪ¸ßЧµÄCI/CD²ßÂÔ£¬ÊµÏÖ¿ìËÙ¡¢±ã½Ý¡¢¼°Ê±ÏìÓ¦µÄUI×Ô¶¯»¯²âÊÔ·½°¸£¬´ïµ½ÁË´Ó´úÂëÌá½»µ½·¢²¼ÉÏÏßµÄÈ«UI±Õ»·µÄ³ÖÐø½»¸¶Ð§¹û¡£
2.2 »úƱÖ÷Á÷³Ìǰ¶Ë¿ª·¢ÏÖ×´
±¾´ÎCI/CDÉý¼¶Êµ¼ùǰ£¬»úƱAPPÖ÷Á÷³Ìǰ¶ËÁ÷³ÌÖУ¬¿ª·¢ÈËÔ±Íê³É¹¦ÄÜ¿ª·¢ºó£¬´óÖÂÓÐÒÔϼ¸¸ö²½Ö裺
1£©ÔÚ´úÂë²Ö¿âÉÏÌá½»´úÂëʱ£¬»á½øÐÐCI¼ì²â£¬Í¨¹ýºó»áºÏ²¢½øÖ÷·ÖÖ§£»
2£©QAͨ¹ý·¢²¼Æ½Ì¨½øÐвâÊÔ»·¾³µÄ´ò°ü²¿ÊðµÈ²Ù×÷£»
3£©QA½øÐÐÊÖ¹¤²âÊÔ£¬²¢½øÐб¾µØUI×Ô¶¯»¯½Å±¾²âÊÔ£¬²âÊÔÍê³Éºó½øÐнá¹û·´À¡£»
4£©Í¨¹ý²âÊÔ£¬½øÈëÏÂÒ»²½µÄÉú²ú·¢²¼Á÷³Ì¡£

Ö÷Á÷³ÌCI/CDÁ÷³Ìͼ
Õû¸ö¹ý³Ì£¬ËäȻʹÓÃÁË×Ô¶¯»¯ÊֶΣ¬µ«ÊÇ£¬»¹ÊÇ´æÔÚһЩÎÊÌ⣺
1£©È˹¤¸ÉÔ¤¹ý¶à£ºÆ½Ì¨µÄ·¢²¼¡¢²¿Êð£¬ÔËÐÐUI×Ô¶¯»¯£¬ÕâÐ©ÖØ¸´µÄ¹Ì»¯²½Öè¶¼ÐèÒªÈ˹¤²ÎÓ룻
2£©·¢²¼»Ø¹é³É±¾¸ß£ºÔÚÿÖܳ£¹æ·¢²¼Á½´ÎµÄ½Ú×àÏ£¬ÈËÁ¦»Ø¹é²âÊÔ¼ÓÉϼ¯³É·´À¡Á´Â·¹ý³¤£¬¶¼»áÔö¼ÓÑéÖ¤³É±¾£»
3£©UI×Ô¶¯»¯²âÊÔ²ÎÓë¶È²»¹»£ºÕû¸ö²âÊÔ¹ý³ÌÖУ¬ÊÖ¹¤²âÊÔÕ¼±È´ó£¬UI×Ô¶¯»¯²âÊÔÓÉÓÚÓÃÀýÊýÁ¿ÅÓ´óÒÔ¼°Õæ»úÔËÐÐЧÂÊÆ¿¾±£¬½öÔÚ²âÊԽ׶νøÐи¨Öú²âÊÔ£¬²¢²»Äܱ£Ö¤UI¹¦ÄÜÑéÖ¤µÄÍêÕû¶È£¬Ô¶Ã»Óз¢»ÓÕæÕýµÄЧÓá£
ÎÒÃÇÕë¶ÔÕâЩÎÊÌâ½øÐÐÁËÁ÷³Ì¸Ä½ø¡£
2.3 Я³Ì»úƱCI/CD¸Ä½øºóÁ÷³Ì

¸Ä½øºóÖ÷Á÷³ÌCI/CDÁ÷³Ìͼ
Óë֮ǰÏà±È£¬¿ª·¢½×¶Î£º
1£©CI¼ì²éµÄ¹ý³ÌÖÐÔö¼ÓÁËESLintУÑéºÍÔöÇ¿ÁËUT¼ìÑ飬¿ÉÒÔÔÚ¸ùÔ´ÉÏÅųýµÍÖÊÁ¿È´ÄÑÒÔ·¢ÏÖµÄbug£»
2£©×Ô¶¯·¢²¼Ãâ³ý·±ÔÓµÄÈËÁ¦²Ù×÷ºÍÂþ³¤µÈ´ý±àÒëµÄ¹ý³Ì£»
3£©Ôö¼ÓÁË×Ô¶¯´¥·¢CRN-WEBµÄUI×Ô¶¯»¯²âÊÔ£¬Ê¹µÃUI×Ô¶¯»¯²âÊÔÌáǰ½éÈ룬½«¼òµ¥¹¦ÄÜÌáǰ½øÐвâÊÔ£¬ÔçÒ»²½·¢ÏÖÎÊÌ⣬¼õÉÙ²âÊԳɱ¾ºÍ¹µÍ¨³É±¾¡£
²âÊԽ׶Σº
ÓÉÔÀ´µÄÊÖ¹¤²âÊÔΪÖ÷£¬UI×Ô¶¯»¯²âÊÔΪ¸¨£¬Çл»³ÉUI×Ô¶¯»¯Õæ»ú²âÊÔΪÖ÷¡£
¹ØÓÚ×î´óЧÂÊ·¢»ÓUI×Ô¶¯»¯µÄ×÷Óã¬×Ô¶¯´ò°ü·¢²¼µÈ£¬»áÔÚÏÂÃæµÄÄÚÈÝÀï½øÐÐÏêϸ½éÉÜ¡£
Èý¡¢CI¼ìÑéÍêÉÆ
3.1 ÍêÉÆ¼ìÑé»úÖÆ
ÍêÉÆCI¼ìÑé»úÖÆ£¬¿ÉÓÐÖúÓÚÎÊÌⱩ¶ǰÖ㬱ÜÃâÎÞ±ØÒªµÄÅŲé³É±¾¡£³ý»ù±¾µÄÕë¶ÔTypeScript´úÂë¹æ·¶µÄESLint¼ì²â£¬¼ÓÇ¿Á˶ÔUTµÄ¼ì²â£¬ÔÚ´ï²»µ½Ö¸¶¨ãÐֵʱ£¬À¹½Ø·ÖÖ§ºÏ²¢£¬Í¨¹ý¹æ·¶ÐÔÒªÇóºÍ×Ô¶¯»¯CI¼ìÑé±£ÕÏ´úÂëµÄÖÊÁ¿¡£
3.2 Ìá¸ß¼ìÑéЧÂÊ
CI¼ì²â»ù±¾ÊÇÒ»¸ö´®ÐеÄÁ÷³Ì£¬µ«ÖмäµÄһЩ¼ìÑé¹ý³Ì¿ÉÒÔ²¢ÐУ¬Ëõ¼õ¼ìÑéʱ¼ä£¬ÀýÈ磺TSC¡¢UTÒÔ¼°ESLintУÑé²¢ÐÐÔËÐУº
ÓÅ»¯Ð§¹û£º
1£©Ã¿¸östagesµÄ¼ì²âÄÚÈÝһĿÁËÈ»£¬Ä³¸öjob³öÏÖÎÊÌâÒ²Äܹ»Ñ¸ËÙ¶¨Î»¡£

PipelineÔËÐнṹͼ
2£©TSC¡¢UT¡¢ESLint²¢ÐÐÔËÐкó£¬build½×¶Î½öÐè1min59s£¬Ïà½Ï´®ÐÐÖ´ÐеÄ5min48s£¬½ÚÔ¼ÁË3min49s£»´®ÐÐϵÄÕûÌ寽¾ùºÄʱΪ8min£¬¸ÄΪ²¢ÐкóµÄƽ¾ùºÄʱΪ4min£¬ÌáÉýÁË50%µÄÖ´ÐÐЧÂÊ¡£

JobsºÄʱͼ
ËÄ¡¢UI×Ô¶¯»¯²âÊÔ
ʵÏÖCI/CD£¬ÐèÒªÈ«Íø×Ô¶¯»¯»Ø¹éÀ´±£Ö¤ÖÊÁ¿£¬¶øUI×Ô¶¯»¯²âÊÔÊÇǰ¶Ë²âÊÔÖÐÕë¶ÔÒµÎñÂß¼×Ô¶¯»¯²âÊÔµÄÓÐЧ·½·¨¡£Õë¶ÔUI×Ô¶¯»¯²âÊÔʵʩ¸´ÔÓ¡¢ÔËÐÐÂý¡¢ÅŲéÎÊÌâЧÂʵ͵ÄÎÊÌ⣬Я³Ì»úƱÔÚÒ»²½²½µÄÉý¼¶¹ý³ÌÖÐͨ¹ý²»¶Ï×ÔÑкÍÍêÉÆ²âÊÔ¹¤¾ß£¬Êµ¼ùµÃ³öÁ˽ϺõĽâ¾ö·½°¸¡£
4.1 MOCKƽ̨
ÔÚUI×Ô¶¯»¯µÄ²âÊÔ¹ý³ÌÖУ¬Êý¾ÝµÄÎȶ¨ÐÔÊÇUI×Ô¶¯»¯²âÊÔÄÜ·ñ˳Àû½øÐеľö¶¨ÐÔÌõ¼þÖ®Ò»¡£»úƱҵÎñÊý¾Ý´æÔڸ߶ȵı仯ÐÔ£¬Ç°Ò»Ê±¼ä¶Î´æÔڵĺ½°àÊý¾ÝÏÂÒ»¿Ì¿ÉÄܾͷ¢ÉúÁ˸ı䣬Êý¾ÝµÄ±ä»¯½«µ¼ÖÂÔÓеÄ×Ô¶¯»¯ÓÃÀýÎÞ·¨Õý³£ÔËÐС£Í¬Ê±ÔÚ¿ª·¢¹ý³ÌÖУ¬·þÎñ¶ËµÄÐèÇó¹¦ÄÜÒ²»áµ¼ÖÂÊý¾Ý±ä»¯¡£
Ϊ½â¾öÊý¾ÝÎÊÌ⣬Ìá¸ßUI×Ô¶¯»¯²âÊÔµÄÎȶ¨ÐÔ£¬ÒýÈëÄÚ²¿×ÔÑеÄMockƽ̨£¬´ïµ½ÒÔÏÂÄ¿µÄ£º
1£©Îȶ¨²»±äµÄÊý¾Ý
2£©²»ÊÜ·þÎñ¶ËÓ°ÏìµÄÊý¾Ý»·¾³
3£©¿ìËÙÏìÓ¦µÄUI½çÃæ
4.2 ·Ö²¼Ê½UI×Ô¶¯»¯Æ½Ì¨
ΪÁ˽â¾öUI×Ô¶¯»¯±¾µØµ¥»úÔËÐÐÂý£¬Õ¼ÓÃÉ豸ºÍÈ˹¤×ÊÔ´µÄÎÊÌ⣬²¿ÃÅÄÚ²¿´î½¨ÁËÒ»Ì×UI×Ô¶¯»¯·Ö²¼Ê½ÔËÐÐÆ½Ì¨£¬ÓÉÔÀ´µÄ±¾µØµ¥Ì¨É豸ÔËÐиÄΪƽ̨¹²Ïí¶ą̀É豸²¢ÐÐÔË×÷µÄģʽ£¬ÔËÐÐʱ³¤ÓÉÔÏȵÄ4Сʱ¼õÉÙµ½ÏÖÔÚ20·ÖÖÓ×óÓÒ¡£
ƽ̨ÉÏÖ§³ÖÈÎÎñ¡¢É豸ºÍÏîÄ¿µÄ¹ÜÀí£¬Ñ¡ÔñÐèÒªÔËÐеÄÓÃÀý£¬´ýÓÃÀýÖ´ÐÐÍê³Éºó¿ÉÒԲ鿴±¨¸æ£¬±¨¸æÖÐÓÐÏàӦʧ°Ü½çÃæ½ØÍ¼£¬±ãÓÚ·ÖÎöÅŲéÎÊÌâ¡£
ÁíÍ⣬ƽ̨¿ÉÒÔÖÆ¶¨Ã¿ÈÕ¶¨Ê±ÈÎÎñ£¬½«Ã¿Ìì²âÊÔ»·¾³¸üÐµĹ¦ÄܽÓÈë¼à¿Ø¡£

ƽ̨ÓÃÀý±¨¸æ»ã×ÜÑùÀýͼ
4.3 ×Ô¶¯»¯¿ò¼Ü
4.3.1 MEC¿ò¼Ü
BDD£¨ÐÐΪÇý¶¯¿ª·¢£©ÊÇÒ»ÖÖÃô½ÝÈí¼þ¿ª·¢µÄ¼¼Êõ£¬¹ÄÀø¿ª·¢Õß¡¢QAºÍ·Ç¼¼ÊõÈËÔ±Ö®¼äµÄÐ×÷£¬Îª±£ÕÏÖÊÁ¿Ð¯³Ì»úƱÂäʵÁËBDD¿ª·¢Ä£Ê½¡£²¿ÃÅÄÚ²¿»ùÓÚCucumberºÍMacaca×ÔÑÐÁËÕæ»úÔËÐеÄUI×Ô¶¯»¯¿ò¼ÜMEC£¨Macaca
Eating Cucumber£©£¬±ãÓÚQAÈËԱʹÓÃ×ÔÈ»ÓïÑÔ±àд×Ô¶¯»¯²âÊԽű¾¡£

MEC¿ò¼Ü½á¹¹Í¼
ÿÌõ×ÔÈ»Óï¾ä¶ÔÓ¦Ò»¸ö¿ÉÖ´Ðеķ½·¨£¬ÒÔÏÂÊÇÓÃMEC±àдµÄ½Å±¾Ê¾Àý£º
@p1
³¡¾°´ó¸Ù:ɸѡº½¿Õ¹«Ë¾
¼ÙÈç ÆôÓÃMockCase[<caseID>]
µ± Ìø×ªÒ³Ãæµ½[<ÁбíÒ³>]
²¢ÇÒ É¸Ñ¡[º½¿Õ¹«Ë¾]Ϊ[Ñ¡ÔñÌõ¼þ¶«·½º½¿Õ]
ÄÇô ÁбíÒ³º½°à°´º½¿Õ¹«Ë¾[¶«º½]ɸѡ
²¢ÇÒ ÒÆ³ýMockCase
Àý×Ó:
| caseID | ÁбíÒ³ |
| 17470891 | µ¥³ÌÁбíÒ³ÉϺ£-±±¾© | |
¹úÄÚɸѡº½¿Õ¹«Ë¾ÓÃÀý½Å±¾
4.3.2 Airtest×Ô¶¯»¯²âÊÔ¹¤¾ß
ÉÏÊö¿ò¼ÜÖвÉÓõÄMacacaÊÇUI×Ô¶¯»¯²âÊÔ¹¤¾ßÖг£ÓõÄÒ»ÖÖ£¬Ò²¿ÉÒÔʹÓÃÆäËû×Ô¶¯»¯²âÊÔ¹¤¾ß½øÐÐÌæ»»£¬¶Ô´Ë£¬²¿ÃÅÄÚ²¿Ò²ÕýÔÚ³¢ÊÔʹÓÃÆäËûµÄͬÀàÐ͹¤¾ß£¬È磺Appium¡¢AirtestµÈ½øÐÐÊÔÑé¡£AirtestÊÇÍøÒ׿ª·¢µÄUI×Ô¶¯»¯²âÊÔ¹¤¾ß£¬Ä¿µÄÊÇͨ¹ýËù¼û¼´ËùµÃ¡¢½ØÍ¼µã»÷µÈ¹¦ÄÜ£¬¼ò»¯²âÊÔ´úÂë±àд¹¤×÷¡£
¾ÍĿǰµÄ²âÊÔ½á¹ûÀ´¿´£¬Airtest°æÏà½ÏMacaca°æ¾ßÓÐÒÔÏÂÓÅÊÆ£º
1£©¸ü¿ìµÄÖ´ÐÐËÙ¶È£º²éÕÒµ¥¸öÔªËØ¿É½ÚʡԼ1-3ÃëµÄʱ¼ä£¬ÕûÌåÓÃÀýÖ´ÐÐʱ¼ä¿É½ÚÊ¡75%ÒÔÉÏ£»
2£©¸ü·á¸»µÄÑéÖ¤¹¦ÄÜ£ºAirtest¿ÉÖ§³ÖͼÏñ±È¶Ô¡£
ÒÔÏÂÊÇͬµÈÓÃÀýÔËÐÐʱ¼ä¶Ô±È£º

Macaca°æÔËÐкÄʱ

Airtest°æÔËÐкÄʱ
»ùÓÚÒÔÉÏÓÅÊÆ£¬½ÓÏÂÀ´µ×²ãÔË×÷»áÇ¨ÒÆµ½Airtest¹¤¾ßÉÏ£¬¶øµÃÒæÓÚ×ÔÈ»ÓïÑÔ·Òë½Å±¾ÔËÐеÄÌØÐÔ£¬ÓÃÀý¼¯Çл»Airtest¹¤¾ßÉÏÎÞÐèÔö¼Ó³É±¾£¬ÇÒ¿ÉÒÔ½øÒ»²½Ìá¸ßÔËÐÐЧÂÊ£¬»ñÈ¡¸ü¶à±ãÀû¡£
ͨ¹ýÑ¡Ôñ²»Í¬µÄ²âÊÔ¹¤¾ß£¬ÌáÉýÁËÔËÐÐЧÂÊ£¬´Ó¶ø´ø¸øÎÒÃÇ˼¿¼»¹ÓÐʲô·½·¨¿ÉÒÔÈÃUI×Ô¶¯»¯²âÊÔÔËÐеĸü¿ì£¿ÏÂÒ»½ÚµÄPAC¿ò¼ÜÔòÊÇÒ»¸öÐµķ½·¨¡£
4.3.3 ¶à½ø³ÌPAC¿ò¼Ü
Ŀǰ£¬»úƱAPPÖ÷Á÷³ÌUI×Ô¶¯»¯ÓÃÀý¼¯Êýǧ¸ö£¬ÐèÇ󸲸ÇÂÊ95%ÒÔÉÏ£¬Í¨¹ý½ÓÈë×Ô¶¯»¯Æ½Ì¨£¬ËäÈ»½â·Å²¿·ÖÉ豸ºÍÈËÁ¦£¬µ«ÊÇ»¹´æÔÚÔËÐÐʱ¼ä¹ý³¤£¬¹ý¶ÈÒÀÀµÉ豸£¬¶à¶Ë²îÒì¼æÈݵÈÎÊÌâ¡£
Я³Ì»úƱAPPÖ÷Á÷µÄRNÏîÄ¿¶¼ÊÇʹÓÃÄÚ²¿¿ª·¢¿ò¼ÜCRN½øÐеģ¬ÔÚÕâ»ù´¡Ö®ÉÏ£¬ÎªÁË´òͨÏîÄ¿ÔÚiOS¡¢Android¡¢H5Èý¶ËÔËÐÐЧ¹û£¬Ê¹ÓÃÄÚ²¿CRN-WEB¿ò¼ÜµÄͬʱ£¬×ÔÑÐÁË¶à½ø³ÌUI×Ô¶¯»¯¿ò¼Ü--PAC¿ò¼Ü£¬PAC£¨Puppeteer
And Cucumber£©ÊôÓÚMEC BDD²âÊÔ×Ô¶¯»¯¿ò¼ÜµÄÑÜÉúÆ·£¬Í¨¹ýHeadless ChromeµÄ¹¤¾ßPuppeteer£¬¸ÄÉÆÄ¿Ç°UI×Ô¶¯»¯²âÊÔµÄÆ¿¾±¡£

PAC¿ò¼Ü¼Ü¹¹Í¼
ͨ¹ýPAC¿ò¼Ü£¬ÔÏȱàдµÄUI×Ô¶¯»¯²âÊԽű¾£¬¿ÉÒÔÁã³É±¾µÄ¶Ô½ÓÔËÐÐÔÚWEB¶Ë£¬ÕâҲΪºóÆÚUI×Ô¶¯»¯²âÊÔµÄÌáǰ½éÈë´òÏ»ù´¡¡£
ÓÅÊÆ£º
1£©Ëõ¶ÌµÄÔËÐÐʱ¼ä£¬½«Ã¿¸öUI×Ô¶¯»¯ÏîÄ¿×ÜÔËÐÐʱ¼äËõ¶ÌÔÚ·ÖÖÓ¼¶
2£©ÍêÈ«ÍÑÀë¿Í»§¶Ë£¬½µµÍ¶ÔÉ豸µÄÒÀÀµ
3£©½â¾öÏÖÓеĶà¶Ë²îÒì¼æÈݺͻ·¾³ÎÊÌâ
4£©ÏÖÓÐCucumberÓÃÀýÎÞ·ìÇл»£¬ÎÞÐèÔٴαàдת»»

CRN-WEBÖ´ÐÐUI×Ô¶¯»¯ÏîÄ¿ÔËÐÐ×ܺÄʱ
Îå¡¢¼¯³É×Ô¶¯·¢²¼ºÍUI²âÊÔ
Ò»¸öÍêÕûµÄ³ÖÐø¹¹½¨ÏµÍ³°üÀ¨Èý¸ö²¿·Ö£ºÒ»¸ö×Ô¶¯¹¹½¨µÄ¹ý³Ì£¨±ÈÈç°²×°ÒÀÀµ×Ô¶¯±àÒë¡¢´úÂëÖÊÁ¿¼ì²é¡¢µ¥Ôª²âÊÔ£¬×Ô¶¯·¢²¼µÈ£©¡¢Ò»¸ö´úÂë´æ´¢¿â£¨¹¹½¨¹ý³ÌµÄËØ²Ä¿â£©¡¢Ò»¸ö³ÖÐø¼¯³ÉµÄ·þÎñÆ÷£¨×Ô¶¯Ö´Ðй¹½¨µÄÁ÷Ë®Ïߣ©¡£ÒÔÏÂ2µãÕýÊÇ¶ÔÆäÖеÄ×Ô¶¯¹¹½¨¹ý³ÌµÄÍêÉÆ¡£

5.1 ƽ̨×Ô¶¯´ò°ü·¢²¼
»ùÓÚ·¢²¼ÏµÍ³£¬µ±´úÂëmerge½øÈëÖ÷²Ö¿âʱ£¬½øÐÐCRNºÍCRN-WEBµÄ×Ô¶¯»¯·¢²¼£¬ÒÔ¼°²âÊÔ»·¾³µÄ²¿Êð¡£
·¢²¼Æ½Ì¨µÄCLI¹¤¾ßÌṩ´ò°ü¹¦ÄÜ£¬¶ÔÆä·â×°µ÷Ó᣷¢²¼Íê³Éºó£¬GitLab-CI¹¹½¨½á¹ûÉÏ´«Ìṩ¸øÏÂÓÎjobʹÓã¬Öмä³öÏÖÎÊÌâʱ£¬»áͨ¹ýÄÚ²¿IM¡¢ÓʼþÐÎÊ½ÍÆË͸øÏà¹ØÈËÔ±¡£

×Ô¶¯´ò°üÁ÷³Ì
5.2 ×Ô¶¯´¥·¢UI²âÊÔ
job¿ªÊ¼Ç°£¬Ê¹ÓÃÉÏÓÎ×Ô¶¯´ò°ü²úÉúµÄÖмä½á¹û£¬Àȡָ¶¨²âÊÔ°æ±¾£¬×Ô¶¯´¥·¢Æ½Ì¨UI×Ô¶¯»¯²âÊÔÈÎÎñ£¬Ö´ÐÐÍê³Éºó£¬Ê¹ÓÃÔ¤ÉèãÐֵУÑé×Ô¶¯»¯Í¨¹ýÂÊ£¬²¢¼°Ê±·´À¡¡£

×Ô¶¯´¥·¢UI×Ô¶¯»¯²âÊÔÁ÷³Ì
½áºÏÉÏÃæÁ½ÏÔÚÏîÄ¿.gitlab-ci.ymlÎļþÖÐÔö¼ÓÁ½ÏîJob£º·Ö±ð¶ÔÓ¦×Ô¶¯»¯·¢²¼ºÍ×Ô¶¯»¯UI²âÊÔ¡£ÈκγÉÔ±commit
push¾ù»á´¥·¢Pipeline£¬¾¹ýUT¡¢UI×Ô¶¯»¯µÈ¼ì²â£¬PipelineÕûÌåͨ¹ýºó£¬²ÅÄÜ´¥·¢merge
requestµÄ״̬¸Ä±ä£¬½øÐÐmerge²Ù×÷£¬½øÒ»²½±£ÕÏ´úÂëÖÊÁ¿£¬Ò»ÏµÁÐÁ÷³ÌºÄʱ½ö7min×óÓÒ¡£Õû¸öPipelineÁ÷³ÌÈçÏÂͼËùʾ£º

PipelineÁ÷³Ì
Áù¡¢×ܽá
Ëæ×ÅÃô½Ý¿ª·¢µÄÍÆ¶¯£¬ÈÃÿһ´ÎÌá½»µÄ´úÂë½øÐÐÒ»´ÎÍêÕûµÄ±àÒë¡¢²âÊÔ¡¢´ò°ü¡¢·¢²¼£¬¼°ÔçµÄ·¢ÏÖ²¢ÐÞ¸´ÎÊÌ⣬±£Ö¤Ñз¢ÖÊÁ¿µÄͬʱ¿ìËÙµü´ú²úÆ·£¬³ÖÐø¼¯³É£¨CI£©¡¢³ÖÐø½»¸¶£¨CD£©ÔÚ´ËÖоÍÊÇÒªÌåÏÖ³öÕâÑùµÄ¼ÛÖµ¡£
ÔÚCI/CDÉý¼¶Êµ¼ùÖУ¬Õë¶ÔCI¼ì²âºÍUI×Ô¶¯»¯²âÊԵȽøÐÐÁËһϵЧÂʺÍÖÊÁ¿µÄÓÅ»¯£¬ÒÔʵÏÖ×îµÍ³É±¾µÄ×î¸ßЧ²âÊÔ¡£ÒýÈëLint¼ì²âºÍUT²âÊÔÕâÖÖ±¾ÉíµÍ³É±¾µÄУÑ飬Ëõ¶Ì¼ì²âʱ¼ä£¬¶øUI×Ô¶¯»¯ÕâÖֳɱ¾±È½Ï¸ßµÄ¼ì²â£¬Ò²ÀûÓÃUI×Ô¶¯»¯Æ½Ì¨ºÍCRN-WEB¶ø´ïµ½¶àƵ´ÎµÄ²âÊÔ¡£ÔÚ´úÂëºÏÈëÖ÷·Ö֧ǰ£¬¾Í½øÐз¢²¼¡¢UI²âÊÔ£¬Ìá¸ßÁ˼ì²âÁ¦¶È£¬¼õÉÙÁË´úÂë»ØÍË·çÏÕ£¬Ê¹µÃUI×Ô¶¯»¯ÔÚǰ¶Ë¼¯³ÉÖз¢»ÓÁËÖØÒªµÄ×÷Óã¬ÐγÉUI²âÊԵıջ·¡£
ÏÖÔÚ£¬»úƱAPPÖ÷Á÷³ÌUI×Ô¶¯»¯²âÊÔÓÃÀý¸²¸ÇÂÊ´ïµ½95%£¬ÓÉÔÀ´Ò»×éÊýÃûQAÈËÔ±´æÔÚ²âÊÔ×ÊÔ´µÄ½ôÕÅÇé¿ö£¬µ½ÏÖÔÚ1ÃûQAÈËÔ±Ò²Äܹ»ÍêÈ«³Ðµ£ÆðÕû×é²âÊÔÈÎÎñµÄ״̬¡£
6.1. ÌáÉý²âÊÔЧÂÊ

ÓÃÀýÖ´ÐкÄʱͼ
ͨ¹ý´Óµ¥»úÖ´Ðе½CRN-WEB¶à½ø³Ì²¢ÐÐÖ´ÐеÄÉý¼¶£¬UI×Ô¶¯»¯µÄÖ´ÐÐЧÂʵõ½ÁË´ó·ùÌáÉý£¬´Ó×î³õµÄ³¬¹ý4Сʱµ½×îÖÕ½«Ö´ÐÐʱ¼ä¿ØÖƵ½·ÖÖӵļ¶±ð£¬ÊµÏÖÁËÕæÕýµÄ¸ßЧ¡¢±ã½Ý¡¢¼°Ê±ÏìÓ¦µÄUI×Ô¶¯»¯²âÊÔ·½°¸¡£

×Ô¶¯»¯²âÊÔÓÃÀý¸²¸Çͼ
ÏÖ½×¶ÎЯ³Ì»úƱµÄ²âÊÔÓÃÀýUI×Ô¶¯»¯¸²¸ÇÂÊÒÑ´ïµ½ÁË95%µÄˮƽ£¬·ÖÖÓ¼¶±ðµÄ¸ßЧUI×Ô¶¯»¯·½°¸´ó·ùÌá¸ßÁ˲âÊÔµÄЧÂÊ£¬Îª¿ìËÙµü´ú¡¢µÍ³É±¾·¢²¼ÌṩÁËÓÐÁ¦Ö§³Å¡£
6.2 ½µµÍ·¢²¼³É±¾

·¢²¼³É±¾¶Ô±Èͼ
·¢²¼³É±¾µÄ½µµÍҲʮ·ÖÃ÷ÏÔ£¬×î³õÿ´Î·¢²¼ÐèҪͶÈë1Ãû²âÊÔÈËÔ±ÊÖ¹¤»Ø¹é£¬×Ô¶¯»¯²âÊÔÌæ´úÈ˹¤²âÊԺ󣬻عé²âÊÔʵÏÖÁË0ÈËÁ¦Í¶È룻»Ø¹é²âÊÔµÄʱ¼ä³É±¾Ò²ÔÚ²»¶ÏµÄÉý¼¶ÓÅ»¯ÖÐÒ»²½²½½µµÍ£¬ÔÚ²ÉÓ÷ֲ¼Ê½Ö´ÐÐUI×Ô¶¯»¯»Ø¹éºó·¢²¼×¼±¸µÄʱ¼ä³É±¾½µµ½ÁË2Сʱ×óÓÒ¡£
|