±à¼ÍƼö: |
±¾ÎÄÀ´×Ôcsdn£¬ÔÚ±¾ÎÄÖÐÖ÷Òª½²½âʵսJenkinsµÄ×Ô¶¯¹¹½¨¹¦ÄÜ£¬Ã¿´ÎÌá½»´úÂëµ½GitHubºó£¬Jenkins»á½øÐÐ×Ô¶¯¹¹½¨¡£ |
|
ǰÆÚ×¼±¸¹¤×÷
½øÐб¾ÕµÄʵսǰ£¬ÍƼöÄú²ÎÕÕ¡¶dockerϵÄJenkins°²×°ºÍÌåÑé¡·×ö°²×°ºÍÌåÑéµÄʵս£¬ÒÔ±ã¶ÔJenkins·þÎñÓгõ²½Á˽⣻
ÖØÒªÇ°Ìá
GitHubÊÕµ½Ìá½»µÄ´úÂëºóÒªÖ÷¶¯Í¨ÖªJenkins£¬ËùÒÔJenkinsËùÔÚ·þÎñÆ÷Ò»¶¨ÒªÓÐÍâÍøIP£¬·ñÔòGitHubÎÞ·¨·ÃÎÊ£¬ÎÒµÄJenkins·þÎñÆ÷ÊDz¿ÊðÔÚÌÚÑ¶ÔÆµÄÔÆÖ÷»úÉÏ£¬´øÓÐÍâÍøIP£»
±¾´ÎʵսҪÌá½»Ô´Âëµ½GitHub£¬ËùÒÔÄúÐèÒªÓÐÒ»¸öGitHubºÅ£¬²¢ÔÚÉÏÃæ´´½¨¹¤³Ì£»
demo¹¤³ÌÔ´Âë
±¾´ÎÓÃÀ´ÔÚJenkinsÉϹ¹½¨µÄ¹¤³ÌÊǸöspringbootµÄweb¹¤³Ì£¬µØÖ·ÊÇ£ºgit@github.com:zq2599/jenkinsdemo.git£¬ÓÃä¯ÀÀÆ÷·ÃÎʵĵØÖ·ÊÇ£ºhttps://github.com/zq2599/jenkinsdemo.git£»
´úÂëºÜ¼òµ¥£¬Ö»ÓÐÒ»¸öcontroller£¬½ÓÊÕhttpÇëÇó·µ»ØÒ»¸ö×Ö·û´®£¬ÈçÏÂËùʾ£º
@RestController
public class Hello {
@RequestMapping("/")
public String sayHello(){
return "3. Hello jenkins, " + new
Date();
}
} |
ÄúÐèÒªÔÚ×Ô¼ºµÄGitHub´´½¨Ò»¸öÏîÄ¿£¬Ô´Âë¿ÉÒÔ²ÎÕÕÉÏÊödemo¹¤³ÌµÄÔ´Â룻
ʵս²½ÖèÊáÀí
±¾´ÎÕû¸öʵս¹ý³ÌÒÀ´ÎΪÈçϲ½Ö裺
1. GitHubÉÏ×¼±¸Ò»¸öspring bootµÄweb¹¤³Ì£»
2. GitHubÉÏÅäÖÃJenkinsµÄwebhookµØÖ·£»
3. ÔÚGitHubÉÏ´´½¨Ò»¸öaccess token£¬Jenkins×öһЩÐèҪȨÏ޵IJÙ×÷µÄʱºò¾ÍÓÃÕâ¸öaccess
tokenÈ¥¼øÈ¨£»
4. Jenkins°²×°GitHub Plugin²å¼þ£»
5. JenkinsÅäÖÃGitHub·ÃÎÊȨÏÞ£»
6. JenkinsÉÏ´´½¨Ò»¸ö¹¹½¨ÏîÄ¿£¬¶ÔÓ¦µÄÔ´ÂëÊDz½Öè1ÖеÄweb¹¤³Ì£»
7. ÐÞ¸Äweb¹¤³ÌµÄÔ´Â룬²¢Ìá½»µ½GitHubÉÏ£»
8. ¼ì²éJenkinsµÄ¹¹½¨ÏîÄ¿ÊÇ·ñ±»´¥·¢×Ô¶¯¹¹½¨£¬¹¹½¨³É¹¦ºó£¬ÏÂÔØ¹¤³ÌÔËÐУ¬¿´ÊDz»ÊÇ»ùÓÚ×îеĴúÂë¹¹½¨µÄ£»
webhookµØÖ·
webhookÊÇ֪ͨJenkinsʱµÄÇëÇóµØÖ·£¬ÓÃÀ´Ìîдµ½GitHubÉÏ£¬ÕâÑùGitHub¾ÍÄÜͨ¹ý¸ÃµØÖ·Í¨Öªµ½Jenkins£»
¼ÙÉèJenkinsËùÔÚ·þÎñÆ÷µÄµØÖ·ÊÇ£º192.168.0.1£¬¶Ë¿ÚΪ8080£¬ÄÇôwebhookµØÖ·¾ÍÊÇhttp://192.168.0.1:8080/github-webhook
ÔÙ´ÎÌáÐÑ£¬ÉÏÊöµØÖ·±ØÐëÊÇÍâÍøÒ²ÄÜ·ÃÎʵ쬷ñÔòGitHubÎÞ·¨·ÃÎʵ½Jenkins£»
ÅäÖÃGitHub
1.µÇ¼GitHub£¬½øÈëÒª±¾´Î¹¹½¨Óõ½µÄ¹¤³Ì£»
2.ÔÚ¹¤³ÌÖ÷Ò³Ãæµã»÷ÓÒÉϽǵġ±Settings¡±£¬ÔÙµã»÷×ó²à¡±Webhooks¡±£¬È»ºóµã»÷¡°Add
webhook¡±£¬ÈçÏÂͼ£º
ÈçÏÂͼ£¬ÔÚ¡±Payload URL¡±Î»ÖÃÌîÈëwebhookµØÖ·£¬ÔÙµã»÷µ×²¿µÄ¡±Add webhook°´Å¥¡±£¬ÕâÑù¾ÍÍê³ÉwebhookÅäÖÃÁË£¬½ñºóµ±Ç°¹¤³ÌÓдúÂëÌá½»£¬GitHub¾Í»áÏò´ËwebhookµØÖ··¢ÇëÇó£¬Í¨ÖªJenkins¹¹½¨£º
Éú³ÉPersonal access tokens
Jenkins·ÃÎÊGitHub¹¤³ÌµÄʱºò£¬ÓеIJÙ×÷ÊÇÐèÒªÊÚȨµÄ£¬ËùÒÔÎÒÃÇÒªÔÚGitHubÉÏÉú³ÉÊÚȨµÄtoken¸øJenkinsʹÓã¬Õâ¾ÍÊÇPersonal
access tokens£¬Éú³É²½ÖèÈçÏ£º
1. µÇ¼GitHub£¬½øÈ롱Settings¡±Ò³Ã棬µã»÷×óϽǵġ±Developer settings¡±£¬ÈçÏÂͼ£º
2. Ìø×ªµ½¡±Developer settings¡±Ò³Ãæºó£¬µã»÷×óϽǵġ°Personal access
tokens¡±£¬ÈçÏÂͼ£º
3. Ìø×ªµ½¡±Personal access tokens¡±Ò³Ãæºó£¬µã»÷ÓÒÉϽǵġ±Generate
new token¡±°´Å¥£¬ÈçÏÂͼ£º
4. ¿ÉÄÜ»áÌáʾÊäÈëGitHubÃÜÂ룬ÊäÈëºóÌø×ªµ½´´½¨tokenµÄÒ³Ãæ£¬ÈçÏÂͼËùʾ£¬ÊäÈëtitle£¬ÔÙ¹´Ñ¡¡±repo¡±ºÍ¡±admin:repo_hook¡±£¬ÔÙµã»÷µ×²¿µÄ¡±Generate
token¡±°´Å¥£¬¾ÍÄܲúÉúÒ»¸öеÄaccess token£¬½«´Ë×Ö·û´®¸´ÖÆÏÂÀ´£¬ºóÃæjenkinsÈÎÎñÖлáÓõ½£º
JenkinsÅäÖÃ
GitHub Plugin²å¼þ£¬ÔÚ¡±ÏµÍ³¹ÜÀí->¹ÜÀí²å¼þ¡±Î»Öüì²é´Ë²å¼þÊÇ·ñÒѾ°²×°£¬Ã»ÓеϰÇëÏȰ²×°£»
ÅäÖÃGitHub£¬µã»÷¡°ÏµÍ³¹ÜÀí->ϵͳÉèÖá±£¬ÈçÏÂͼ£º
ÔÚϵͳÉèÖÃÒ³ÃæÕÒµ½¡±GitHub¡±£¬ÅäÖÃÒ»¸ö¡±GitHub Server¡±£¬ÈçÏÂͼ£¬¡±API URL¡±Ìîд¡±https://api.github.com¡°£¬¡±Credentials¡±Î»ÖÃÈçÏÂͼºì¿òËùʾ£¬Ñ¡Ôñ¡±Add->Jenkins¡±£º
µ¯³öµÄÒ³ÃæÖУ¬¡±Kind¡±Ñ¡Ôñ¡±Secret text¡±£¬¡±Secret¡±ÌîÈëÇ°ÃæÔÚGitHubÉÏÉú³ÉµÄPersonal
access tokens£¬DescriptionËæ±ãдһЩÃèÊöÐÅÏ¢£¬ÈçÏÂͼ£º
ÌîдÍê±Ïºó£¬µã»÷ÓÒ²àµÄ¡±Test connection¡±°´Å¥£¬Èç¹ûÐÅϢûÓÐÌî´í£¬ÏÔʾµÄÄÚÈÝÈçÏÂͼËùʾ£º
µã»÷Ò³Ãæ×îµ×²¿µÄ¡±±£´æ¡±°´Å¥£»
GitHubÏîÄ¿µÄÏîÄ¿Ö÷Ò³ºÍ²Ö¿âµØÖ·
ÏîÄ¿Ö÷Ò³ºÍ²Ö¿âµØÖ·ÊDz»Í¬µÄ£¬ÈçÏÂͼ£¬ºì¿ò1ÖÐÊÇÏîÄ¿Ö÷Ò³£¬µã»÷ºì¿ò2µÄ°´Å¥ºó£¬ºì¿ò3ÖÐÊÇ²Ö¿âµØÖ·£¨ÒªÓÃHTTPSµÄ£¬²»ÓÃSSH
µÄ£©£º
ÏîÄ¿Ö÷Ò³£ºhttps://github.com/zq2599/jenkinsdemo
²Ö¿âµØÖ·£ºhttps://github.com/zq2599/jenkinsdemo.git
н¨¹¹½¨ÏîÄ¿
ÔÚJenkinsÉÏн¨Ò»¸ömaven¹¹½¨ÏîÄ¿£¬ÃûΪtest003£¬ÈçÏÂͼ£º
½ÓÏÂÀ´ÉèÖÃtest003µÄÅäÖÃÐÅÏ¢£¬·ÖΪ¡±Ô´Âë¹ÜÀíÉèÖᱺ͡±¹¹½¨»·¾³ÉèÖá±Á½²¿·Ö£»
Ô´Âë¹ÜÀíÉèÖÃ
ÉÏͼÖÐÿ¸öºì¿òµÄÉèÖÃÈçϽâÊÍ£º
1. Ñ¡Ôñ¡±Git¡±£»
2. ¡°Repository URL¡±ÊäÈë²Ö¿âµØÖ·£ºhttps://github.com/zq2599/jenkinsdemo.git£»
3. ¡°Credentials¡±´´½¨Ò»¸öCredentials£¬KindÑ¡Ôñ¡±Username with
password¡±£¬UsernameÊäÈëGitHubÕ˺ţ¬PasswordÊäÈëGitHubÃÜÂ룻
4. ¡°Ô´Âë¿âä¯ÀÀÆ÷¡±Ñ¡Ôñ¡±githubweb¡±£»
5. ¡°URL¡±ÊäÈëÏîÄ¿Ö÷Ò³£ºhttps://github.com/zq2599/jenkinsdemo£»
6. ¡°¹¹½¨´¥·¢Æ÷¡±Öй´Ñ¡¡±GitHub hook trigger for GiTScm polling¡±£»
¹¹½¨»·¾³ÉèÖÃ
ÈçÏÂͼËùʾ£¬¹´Ñ¡¡±Use secret text(s) or file(s)¡±£¬ÏÂÃæµÄ¡±Credentials¡±Ñ¡ÔñÎÒÃÇ֮ǰÅäÖùýµÄ¡±Personal
access tokens¡±
ÉèÖÃÍê³Éºó£¬µã»÷Ò³Ãæµ×²¿µÄ¡±±£´æ¡±°´Å¥£»
ÐÞ¸Äweb¹¤³Ì´úÂë²¢Ìá½»µ½GitHub
½«GitHub²Ö¿âµÄ´úÂëcloneµ½±¾µØ£¬×öһЩÐÞ¸ÄÈ»ºóÌá½»µ½GitHubÉÏ£¬ÀýÈçÎÒÐÞ¸ÄÁËHello.javaÖеÄÔ´Â루ÐÞ¸ÄÁËsayHello·½·¨µÄreturnµÄ×Ö·û´®µÄÄÚÈÝ£©£¬ÈçÏÂËùʾ£º
@RestController
public class Hello {
@RequestMapping("/")
public String sayHello(){
//Ð޸ķµ»ØµÄ×Ö·û´®µÄÄÚÈÝ
return "abcdefg. Hello jenkins, "
+ new Date();
}
} |
Ìá½»µ½GitHubµÄ²Ù×÷ÈçÏÂͼËùʾ£º
Jenkins×Ô¶¯¹¹½¨
»Øµ½JenkinsµÄtest003Ò³Ãæ£¬¿ÉÒÔ¿´µ½ÒѾ¿ªÊ¼×Ô¶¯¹¹½¨ÁË£¬ÈçÏÂͼ£º
ÑéÖ¤×Ô¶¯¹¹½¨½á¹û
ÔÚtest003µÄÒ³Ãæ£¬µã»÷¡±¹¤×÷¿Õ¼ä¡±->¡±¹¤×÷Çø¡±£¬ÈçÏÂͼ£º
µã»÷ÏÂͼºì¿òÖеġ±mavendockerplugindemo-0.0.1-SNAPSHOT.jar¡±£¬ä¯ÀÀÆ÷¾Í»áÏÂÔØÕâ¸öÎļþ£º
ÏÂÔØ³É¹¦ºó£¬ÔÚmavendockerplugindemo-0.0.1-SNAPSHOT.jarËùÔÚĿ¼ÏÂÖ´ÐÐÃüÁîjava
-jar mavendockerplugindemo-0.0.1-SNAPSHOT.jar£¬webÓ¦ÓÃÆô¶¯³É¹¦£¬ÈçÏÂͼ£º
ä¯ÀÀÆ÷ÊäÈëlocalhost:8080£¬¿ÉÒÔ¿´µ½webÓ¦Ó÷µ»ØµÄÄÚÈÝÊÇÎÒÃǸոÕÌá½»µÄ×îÐÂÄÚÈÝ£¬ÈçÏÂͼ£º
ÖÁ´Ë£¬GitHubÌá½»´¥·¢Jenkins×Ô¶¯¹¹½¨µÄʵս¾ÍÍê³ÉÁË£¬Ï£ÍûÄܶÔÄú´î½¨³ÖÐø¹¹½¨»·¾³ÓÐËù°ïÖú¡£ |