Äú¿ÉÒÔ¾èÖú£¬Ö§³ÖÎÒÃǵĹ«ÒæÊÂÒµ¡£

1Ôª 10Ôª 50Ôª





ÈÏÖ¤Â룺  ÑéÖ¤Âë,¿´²»Çå³þ?Çëµã»÷Ë¢ÐÂÑéÖ¤Âë ±ØÌî



  ÇóÖª ÎÄÕ ÎÄ¿â Lib ÊÓÆµ iPerson ¿Î³Ì ÈÏÖ¤ ×Éѯ ¹¤¾ß ½²×ù Model Center   Code  
»áÔ±   
   
 
     
   
 ¶©ÔÄ
  ¾èÖú
GitLab CI³ÖÐø¼¯³ÉÅäÖ÷½°¸
 
×÷Õߣº °ÁÒí·Éº®
  3259  次浏览      30
2020-11-24
 
±à¼­ÍƼö:
±¾ÎÄÖ÷ÒªÏêϸ½éÉÜÁ˳ÖÐø¼¯³ÉµÄºÃ´¦£¬ÈçºÎ´î½¨GitLab³ÖÐø¼¯³É»·¾³£¨NET°æ£©£¬ÒÔ¼°³£¼ûµÄÎÊÌâ½â¾ö£¬ Ï£Íû¶ÔÄúµÄѧϰÓÐËù°ïÖú¡£
±¾ÎÄÀ´×ÔÓÚ²©¿ÍÔ°£¬ÓÉ»ðÁú¹ûÈí¼þAlice±à¼­ÍƼö¡£

1. ³ÖÐø¼¯³É½éÉÜ

1.1 ¸ÅÄî

³ÖÐø¼¯³ÉÊÇÒ»ÖÖÈí¼þ¿ª·¢Êµ¼ù£¬¼´ÍŶӿª·¢³ÉÔ±¾­³£¼¯³ÉËüÃǵŤ×÷£¬Í¨¹ýÿ¸ö³ÉԱÿÌìÖÁÉÙ¼¯³ÉÒ»´Î£¬Ò²¾ÍÒâζ×ÅÿÌì¿ÉÄܻᷢÉú¶à´Î¼¯³É¡£Ã¿´Î¼¯³É¶¼Í¨¹ý×Ô¶¯»¯µÄ¹¹½¨£¨°üÀ¨±àÒ룬·¢²¼£¬×Ô¶¯»¯²âÊÔ£©À´ÑéÖ¤£¬´Ó¶ø¾¡ÔçµØ·¢ÏÖ¼¯³É´íÎó¡£

1.2 ³ÖÐø¼¯³ÉµÄºÃ´¦

£¨1£©¿ìËÙ·¢ÏÖ´íÎó¡£Ã¿Íê³ÉÒ»µã¸üУ¬¾Í¼¯³Éµ½Ö÷¸É£¬¿ÉÒÔ¿ìËÙ·¢ÏÖ´íÎ󣬶¨Î»´íÎóÒ²±È½ÏÈÝÒס£

£¨2£©·ÀÖ¹·ÖÖ§´ó·ùÆ«ÀëÖ÷¸É¡£Èç¹û²»ÊǾ­³£¼¯³É£¬Ö÷¸ÉÓÖÔÚ²»¶Ï¸üУ¬»áµ¼ÖÂÒԺ󼯳ɵÄÄѶȱä´ó£¬ÉõÖÁÄÑÒÔ¼¯³É¡£

2. GitLab³ÖÐø¼¯³É£¨CI£©

2.1 ¼ò½é

ÔÚGitLab 8.0+ÌṩÁ˳ÖÐø¼¯³ÉµÄ¹¦ÄÜ£¬ÔÚGitLabÖÐÓиöRunnersµÄ¸ÅÄî¡£

RunnerÒ»¹²ÓÐÈýÖÖÀàÐÍ

1) ±¾µØRunner

2) ÆÕͨµÄ·þÎñÆ÷ÉϵÄRunner

3) »ùÓÚDockerµÄRunner

2.2 GitLab¼òµ¥Ô­Àíͼ

±¾ÎÄÖ»½éÉÜGitLab¶ÔNET½øÐгÖÐø¼¯³É

2.3 GitLab³ÖÐø¼¯³ÉËùÐè»·¾³

¿ª·¢»·¾³£ºVS2015¡¢Git

GitLab·þÎñÆ÷»·¾³£ºGitLab 8.0+

Runner-CI·þÎñÆ÷£ºwindow¡¢Git¡¢Msbuild¡¢Nuget¡¢PowerShell¡¢GitLab-Runner

2.4 ÐèÒªÁ˽â֪ʶ

Git²Ù×÷¡¢GitLab¡¢Msbuild&NugetÃüÁîÐС¢PowershellÃüÁîÐÐ

3. ´î½¨GitLab³ÖÐø¼¯³É»·¾³£¨NET°æ£©

3.1 »·¾³´î½¨

3.1.1 »ù´¡»·¾³´î½¨

ÕÒһ̨µçÄÔ£¨·þÎñÆ÷×îºÃ£©ÏµÍ³°²×°Îªwindow 7£¨x64£¬¸Ä³ÉÓ¢Îİæ×îºÃ£©£¬²¢ÇÒ»ú×Ó°²×°ÁË.net framework4.0ÔËÐл·¾³£¨ÀïÃæÒªÓÐMsBuild£©

3.1.2 Git°²×°

°²×°Git£¬ÏÂÔØµØÖ· https://git-scm.com/download/win

3.1.3 NuGet°²×°

°²×°NuGet.exe£¬ÏÂÔØµØÖ·£ºhttp://nuget.codeplex.com/downloads/get/669083

3.2 Ïà¹ØÅäÖÃ

3.2.1 Git»·¾³±äÁ¿ÅäÖÃ

¼ÆËã»úÓÒ¼ü¡ª>ÊôÐÔÀïµ¥»÷Ñ¡Ôñ¡ª>»·¾³±äÁ¿

Git Ŀ¼Ï嵀 bin£¨Èç C:\Program Files (x86)\Git\bin£©Ìí¼Óµ½ PATH »·¾³±äÁ¿¡£

ÈçÏÂͼ£ºÑ¡Ôñ PATH±à¼­£¬½« bin µÄ·¾¶£¨C:\Program Files (x86)\Git\bin£©Ìí¼Óµ½±äÁ¿Öµ

ÏêϸÅäÖòο¼·½·¨£¨¶þѡһ¼´¿É£©

¡¾ÊÖ¶¯ÅäÖû·¾³±äÁ¿¡¿

http://jingyan.baidu.com/article/fec4bce271601ff2618d8be3.html

¡¾Git°²×°×Ô¶¯ÅäÖû·¾³±äÁ¿¡¿

http://jingyan.baidu.com/article/9f7e7ec0b17cac6f2815548d.html

3.2.2 PowerShellµ÷ÓòâÊÔ

PowerShellÊǵ÷Ó÷½Ê½£¨GitLabÌṩºÜ¶àÖÖ·½Ê½£©£¬±¾ÎÄÖ»Õë¶ÔPowerShell·½Ê½½øÐÐÑÝʾ¡£PowerShell¿ÉÒÔÀí½âΪ¾ÍÊÇcmdµÄÉý¼¶°æ¡£

´ò¿ªPowerShell£¬²âÊÔGit¡¢MsBuild¡¢NuGetÃüÁîÐÐÄÜ·ñÔÚPowerShellÖÐʹÓã¨Èç¹û²»Ïë²âÊÔ£¬Çë¼ÌÐøÍùÏ¿´£©¡£

¾ÙÀý£º

²âÊÔGit

3.2.3 GitLab-RunnerÏÂÔØ

Ê×ÏÈ£¬ÏÂÔØgitlab-ci-multi-runner-windows-amd64£¬²¢½«Æä·Åµ½C:\CI

ÏÂÔØµØÖ·£º

3.3 GitLab²é¿´ÏîÄ¿µÄRunners

µã»÷Ò»¸öÏîÄ¿->Settings->Runners, µÃµ½UrlµØÖ·¢ÙºÍregistration token¢Ú

3.4 ¹¹½¨GitLab-Runner·þÎñ

3.4.1 ½éÉÜ

»ù´¡»·¾³ÒѾ­´î½¨Íê³É£¬ÈçºÎ½«Õą̂¼ÆËã»úÕæÕý±ä³Éһ̨Runner-CI·þÎñÆ÷£¬ÎÒÃÇÐèÒªÏêϸ½éÉÜһϡ£

3.4.2 ÏÂÔØÈí¼þ£¨Ã»ÏÂÔØµÄÇëÏÂÔØ£©

Ê×ÏÈ£¬ÏÂÔØgitlab-ci-multi-runner-windows-amd64£¬²¢½«Æä·Åµ½ D:\CI_Test

ÏÂÔØµØÖ·£º

3.4.3 ×¢²áÐÅÏ¢

ÔËÐÐcmdÃüÁÒÔ¹ÜÀíÔ±Éí·Ý´ò¿ªcmd£©

ÊäÈëÃüÁîΪ:

cd \
cd ci
gitlab-ci-multi-runner-windows-amd64.exe register

¸ù¾ÝÌáʾ£¬Ìîд

1) GitLab->RunnersµÄUrlµØÖ·¢Ù

2) GitLab->RunnersµÄregistration token¢Ú

3) runnerÃû³Æ£¬Õâ¸öËæ±ãд

4) ·ÖÖ§Ãû£¬master

5) ЭÒ鷽ʽ£¬shell

ÈçÏÂͼÌîдÐÅÏ¢ºìÉ«²¿·Ö

3.4.4 ¿ªÆôgitlab-runner·þÎñ

ÊäÈ뿪ÆôÃüÁ²¢¼ì²éwindow·þÎñÖкÍGitLab->RunnersÖÐÊÇ·ñ¿ªÆô³É¹¦

gitlab-ci-multi-runner-windows-amd64.exe install
gitlab-ci-multi-runner-windows-amd64.exe start

3.4.5 ÐÞ¸ÄЭÒéconfig.tomlÎļþ£¨ÖØÒª£©

×¢²á³É¹¦ºó£¬ÔÚÎļþ¼ÐÖÐÕÒµ½config.toml£¬ÔÚ[[runners]]ºóÃæÌí¼Óshell = "powershell"½Úµã

3.5 ¹¹½¨.gitlab-ci.yml½Å±¾

¡¾.gitlab-ci.ymlÄÚÈÝΪ¡¿

stages:
- build
job:
stage: build
script:
- echo "Restoring NuGet Packages..."
- C:\test\nuget.exe restore "ConsoleApplication1.sln"
- echo "Solution Build..."
- C:\Windows\Microsoft.NET\Framework64\v4.0.30319\msbuild.exe
/p:Configuration=Debug /p:Platform="Any
CPU" /consoleloggerparameters:ErrorsOnly
/maxcpucount /nologo /property:Configuration=Release
/verbosity:quiet "ConsoleApplication1.sln"
tags:
except:
- tags

ÏÂͼºì¿òÖеÄÃüÁֻҪ½«Â·¾¶ÐÞ¸ÄΪ"ConsoleApplication1.sln"µÄʵ¼Ê·¾¶¾ÍÄÜÖ±½Ó´ÓPowershellÖÐÔËÐС£×¢Ò⣺Èç¹û±¨´í"ConsoleApplication1.sln"ÕÒ²»µ½¿ÉÒÔ³¢ÊÔ±äΪ"src/ConsoleApplication1.sln"

3.6 Íê³ÉÅäÖÃ

Ìá½»´úÂë²âÊÔ

³É¹¦£ºµã»÷²é¿´³É¹¦ÈÕÖ¾

ʧ°Ü£º µã»÷²é¿´´íÎóÈÕÖ¾

±àÒëÖУºµã»÷²é¿´±àÒëÖеÄÈÕÖ¾

.gitlab-ci.yml½Å±¾´íÎ󣺣¬µã»÷Ìø×ªµ½.gitlab-ci.ymlÑéÖ¤Ò³Ãæ

4. ³£¼ûÎÊÌâ½â¾ö

4.1 GitLab³öÏÖPending¿¨×¡

Çë¼ì²éRunner-CI·þÎñÆ÷µÄGitLab-Runner·þÎñÊÇ·ñ°²×°³É¹¦£¬RunnersÖеÄUrlµØÖ·¢ÙÊÇ·ñÕýÈ·¡£

4.2 GitLab CIÂÒÂëÎÊÌâ

GitLab·µ»ØÐÅÏ¢ÂÒÂ룬һ°ãÊÇÒòΪGitLab²»ÄÜʶ±ðÖÐÎÄ£¬Ò»°ãÂÒÂëÊÇPowerShell·µ»ØµÄÖÐÎÄ£¬°ÑPowerShell½Å±¾¶ÀÁ¢ÔËÐп´¿´ÊÇ·ñ±¨´í¡£ËùÒÔÍÆ¼öwindow¸ã³ÉÓ¢ÎİæµÄ£¬ÒªÊÇÄÄλ´óÏÀÖªµÀGitLabÔõôʶ±ðÖÐÎÄÂé·³·ÖÏíϹþ¡£

4.3 Ã÷Ã÷´íÎ󣬵«Build³É¹¦

´íÎó½ØÍ¼ÈçÏ£¬Çë¼ì²éGit»·¾³±äÁ¿ÊÇ·ñÅäÖã¬PowerShell½Å±¾ÊÇ·ñ¶ÀÁ¢ÎªÒ»¸öÎļþ

4.4 .gitlab-ci.yml½Å±¾´íÎó

µã»÷Lint£¬½øÐнű¾ÑéÖ¤£¬²Î¿¼×ÊÁÏhttp://docs.gitlab.com/ee/ci/yaml/README.html

×¢Òâ

script:

- {¿Õ¸ñ} {ÄãµÄÃüÁî}

 

   
3259 ´Îä¯ÀÀ       30
Ïà¹ØÎÄÕÂ

ΪʲôҪ×ö³ÖÐø²¿Êð£¿
ÆÊÎö¡°³ÖÐø½»¸¶¡±£ºÎå¸öºËÐÄʵ¼ù
¼¯³ÉÓë¹¹½¨Ö¸ÄÏ
³ÖÐø¼¯³É¹¤¾ßµÄÑ¡Ôñ-×°ÔØ
Ïà¹ØÎĵµ

³ÖÐø¼¯³É½éÉÜ
ʹÓÃHudson³ÖÐø¼¯³É
³ÖÐø¼¯³ÉÖ®-ÒÀÀµ¹ÜÀí
IPD¼¯³É²úÆ·¿ª·¢¹ÜÀí
Ïà¹Ø¿Î³Ì

ÅäÖùÜÀí¡¢ÈÕ¹¹½¨Óë³ÖÐø¼¯³É
Èí¼þ¼Ü¹¹Éè¼Æ·½·¨¡¢°¸ÀýÓëʵ¼ù
µ¥Ôª²âÊÔ¡¢Öع¹¼°³ÖÐø¼¯³É
»ùÓÚAndroidµÄµ¥Ôª¡¢ÐÔÄܲâÊÔ