{"id":28062,"date":"2021-07-25T14:12:17","date_gmt":"2021-07-25T07:12:17","guid":{"rendered":"https:\/\/wiki.tino.org\/staging\/?p=28062"},"modified":"2021-11-22T17:47:39","modified_gmt":"2021-11-22T10:47:39","slug":"jenkins-la-gi","status":"publish","type":"post","link":"https:\/\/tino.vn\/blog\/jenkins-la-gi\/","title":{"rendered":"Jenkins l\u00e0 g\u00ec? T\u00ecm hi\u1ec3u chi ti\u1ebft v\u1ec1 ph\u1ea7n m\u1ec1m Jenkins"},"content":{"rendered":"\n<p><strong>L\u1eadp tr\u00ecnh hi\u1ec7n \u0111\u1ea1i cho ph\u00e9p nh\u00e0 ph\u00e1t tri\u1ec3n th\u1ef1c hi\u1ec7n c\u00e1c t\u00e1c v\u1ee5 nh\u01b0 l\u1ea5y code m\u1edbi nh\u1ea5t, build, deploy,..m\u1ed9t c\u00e1ch t\u1ef1 \u0111\u1ed9ng h\u00f3a v\u00e0 b\u1ecf qua c\u00e1c b\u01b0\u1edbc th\u1ee7 c\u00f4ng nh\u01b0 tr\u01b0\u1edbc \u0111\u00e2y. \u0110\u1ec3 l\u00e0m \u0111\u01b0\u1ee3c nh\u01b0 v\u1eady, h\u1ecd ph\u1ea3i c\u1ea7n m\u1ed9t s\u1ed1 ph\u1ea7n m\u1ec1m chuy\u00ean d\u1ee5ng, \u0111i\u1ec3n h\u00ecnh l\u00e0 Jenkins. V\u1eady Jenkins l\u00e0 g\u00ec? C\u00e1c b\u1ea1n h\u00e3y tham kh\u1ea3o b\u00e0i vi\u1ebft d\u01b0\u1edbi \u0111\u00e2y \u0111\u1ec3 hi\u1ec3u r\u00f5 h\u01a1n v\u1ec1 Jenkins nh\u00e9!<\/strong><\/p>\n\n\n\n<h2 id=\"Jenkins_l\u00e0_g\u00ec?\"><strong>Jenkins l\u00e0 g\u00ec?<\/strong><\/h2>\n\n\n\n<h3 id=\"Kh\u00e1i_ni\u1ec7m_Jenkins\"><strong>Kh\u00e1i ni\u1ec7m Jenkins<\/strong><\/h3>\n\n\n\n<p>Jenkins l\u00e0 m\u1ed9t c\u00f4ng c\u1ee5 t\u1ef1 \u0111\u1ed9ng h\u00f3a c\u00f3 m\u00e3 ngu\u1ed3n m\u1edf \u0111\u01b0\u1ee3c vi\u1ebft b\u1eb1ng Java k\u1ebft h\u1ee3p v\u1edbi nhi\u1ec1u <a href=\"https:\/\/tino.vn\/blog\/plugin-la-gi\/\" target=\"_blank\" rel=\"noreferrer noopener\">Plugin<\/a>, Jenkins c\u00f3 m\u1ee5c \u0111\u00edch ch\u00ednh l\u00e0 t\u00edch h\u1ee3p li\u00ean t\u1ee5c (hay c\u00f2n g\u1ecdi l\u00e0 <strong>CI- Continuous Integration<\/strong>). C\u00f4ng c\u1ee5 n\u00e0y \u0111\u01b0\u1ee3c s\u1eed d\u1ee5ng \u0111\u1ec3 x\u00e2y d\u1ef1ng v\u00e0 ki\u1ec3m tra c\u00e1c d\u1ef1 \u00e1n ph\u1ea7n m\u1ec1m li\u00ean t\u1ee5c, gi\u00fap c\u00e1c nh\u00e0 ph\u00e1t tri\u1ec3n t\u00edch h\u1ee3p c\u00e1c thay \u0111\u1ed5i v\u00e0o d\u1ef1 \u00e1n m\u1ed9t c\u00e1ch d\u1ec5 d\u00e0ng h\u01a1n.<\/p>\n\n\n\n<p>Jenkins c\u0169ng cho ph\u00e9p b\u1ea1n li\u00ean t\u1ee5c cung c\u1ea5p ph\u1ea7n m\u1ec1m c\u1ee7a m\u00ecnh b\u1eb1ng c\u00e1ch t\u00edch h\u1ee3p v\u1edbi m\u1ed9t s\u1ed1 l\u01b0\u1ee3ng l\u1edbn c\u00e1c c\u00f4ng ngh\u1ec7 th\u1eed nghi\u1ec7m ho\u1eb7c \u0111\u00e3 tri\u1ec3n khai.<\/p>\n\n\n\n<p>V\u1edbi Jenkins, c\u00e1c t\u1ed5 ch\u1ee9c c\u00f3 th\u1ec3 \u0111\u1ea9y nhanh qu\u00e1 tr\u00ecnh ph\u00e1t tri\u1ec3n ph\u1ea7n m\u1ec1m th\u00f4ng qua t\u1ef1 \u0111\u1ed9ng h\u00f3a. Jenkins t\u00edch h\u1ee3p c\u00e1c v\u00f2ng \u0111\u1eddi ph\u00e1t tri\u1ec3n c\u1ee7a m\u1ed9t quy tr\u00ecnh bao g\u1ed3m x\u00e2y d\u1ef1ng, t\u00e0i li\u1ec7u, th\u1eed nghi\u1ec7m, g\u00f3i, giai \u0111o\u1ea1n, tri\u1ec3n khai, ph\u00e2n t\u00edch t\u0129nh,&#8230;<\/p>\n\n\n\n<div class=\"wp-block-image\"><figure class=\"aligncenter\"><img decoding=\"async\" width=\"700\" height=\"375\" src=\"https:\/\/tino.vn\/blog\/wp-content\/uploads\/2021\/07\/word-image-1162.png\" alt=\"jenkins-la-gi\" class=\"wp-image-28064\" title=\"\" srcset=\"https:\/\/tino.vn\/blog\/wp-content\/uploads\/2021\/07\/word-image-1162.png 700w, https:\/\/tino.vn\/blog\/wp-content\/uploads\/2021\/07\/word-image-1162-300x161.png 300w\" sizes=\"(max-width: 700px) 100vw, 700px\" \/><\/figure><\/div>\n\n\n\n<p>B\u00ean c\u1ea1nh \u0111\u00f3, c\u00e1c Plugin trong Jenkins cho ph\u00e9p t\u00edch h\u1ee3p c\u00e1c giai \u0111o\u1ea1n DevOps kh\u00e1c nhau. N\u1ebfu b\u1ea1n mu\u1ed1n t\u00edch h\u1ee3p m\u1ed9t c\u00f4ng c\u1ee5 c\u1ee5 th\u1ec3, b\u1ea1n c\u1ea7n c\u00e0i \u0111\u1eb7t Plugin cho c\u00f4ng c\u1ee5 \u0111\u00f3.<\/p>\n\n\n\n<h3 id=\"L\u1ecbch_s\u1eed_ra_\u0111\u1eddi_c\u1ee7a_ph\u1ea7n_m\u1ec1m_Jenkins\"><strong>L\u1ecbch s\u1eed ra \u0111\u1eddi c\u1ee7a ph\u1ea7n m\u1ec1m Jenkins<\/strong><\/h3>\n\n\n\n<p>D\u1ef1 \u00e1n Jenkins \u0111\u01b0\u1ee3c b\u1eaft \u0111\u1ea7u v\u00e0o n\u0103m 2004 b\u1edfi Kohsuke Kawaguchi, khi \u00f4ng \u0111ang l\u00e0m vi\u1ec7c cho Sun Microsystems. Kohsuke l\u00e0 m\u1ed9t nh\u00e0 ph\u00e1t tri\u1ec3n t\u1ea1i Sun v\u00e0 c\u1ea3m th\u1ea5y m\u1ec7t m\u1ecfi khi ph\u1ea3i h\u1ee9ng ch\u1ecbu c\u00e1c c\u01a1n th\u1ecbnh n\u1ed9 c\u1ee7a nh\u00f3m m\u00ecnh m\u1ed7i khi code c\u1ee7a anh ta th\u1ea5t b\u1ea1i.<\/p>\n\n\n\n<p>Kohsuke \u0111\u00e3 t\u1ea1o ra Jenkins nh\u01b0 m\u1ed9t c\u00e1ch \u0111\u1ec3 th\u1ef1c hi\u1ec7n t\u00edch h\u1ee3p li\u00ean t\u1ee5c. Sau \u0111\u00f3, Kohsuke \u0111\u00e3 m\u1edf ngu\u1ed3n v\u00e0 t\u1ea1o ra d\u1ef1 \u00e1n Jenkins. Ch\u1eb3ng bao l\u00e2u sau, vi\u1ec7c s\u1eed d\u1ee5ng Jenkins \u0111\u00e3 lan r\u1ed9ng kh\u1eafp th\u1ebf gi\u1edbi. B\u1ea3n Jenkins \u0111\u1ea7u ti\u00ean \u0111\u01b0\u1ee3c ph\u00e1t h\u00e0nh v\u00e0o th\u00e1ng 2 n\u0103m 2005.<\/p>\n\n\n\n<p>Sau khi Oracle mua l\u1ea1i Sun Microsystems, c\u1ed9ng \u0111\u1ed3ng Hudson \u0111\u00e3 ch\u1ea5p thu\u1eadn nh\u1eefng \u0111\u1ec1 xu\u1ea5t \u0111\u1ec3 t\u1ea1o ra d\u1ef1 \u00e1n Jenkins. V\u00e0o th\u00e1ng 2 n\u0103m 2011, Hudson \u0111\u00e3 \u0111\u01b0\u1ee3c t\u00e1ch ra thay v\u00ec \u0111\u1ed5i t\u00ean th\u00e0nh Jenkins.<\/p>\n\n\n\n<p>M\u1eb7c d\u00f9 Hudson v\u00e0 Jenkins \u0111\u01b0\u1ee3c ph\u00e1t tri\u1ec3n \u0111\u1ed9c l\u1eadp, Jenkins l\u1ea1i c\u00f3 \u0111\u01b0\u1ee3c nhi\u1ec1u d\u1ef1 \u00e1n v\u00e0 c\u1ed9ng t\u00e1c vi\u00ean h\u01a1n Hudson. Do \u0111\u00f3, Hudson \u0111\u00e3 kh\u00f4ng c\u00f2n \u0111\u01b0\u1ee3c c\u1ed9ng \u0111\u1ed3ng duy tr\u00ec.<\/p>\n\n\n\n<p>\u0110\u1ebfn n\u0103m 2014, Kawaguchi \u0111\u00e3 tr\u1edf th\u00e0nh <a href=\"https:\/\/tino.vn\/blog\/cto-la-gi\/\" target=\"_blank\" rel=\"noreferrer noopener\">CTO<\/a> c\u1ee7a CloudBees, m\u1ed9t c\u00f4ng ty chuy\u00ean cung c\u1ea5p c\u00e1c s\u1ea3n ph\u1ea9m d\u1ef1a tr\u00ean ch\u00ednh n\u1ec1n t\u1ea3ng Jenkins.<\/p>\n\n\n\n<h3 id=\"Jenkins_ho\u1ea1t_\u0111\u1ed9ng_nh\u01b0_th\u1ebf_n\u00e0o?\"><strong>Jenkins ho\u1ea1t \u0111\u1ed9ng nh\u01b0 th\u1ebf n\u00e0o?<\/strong><\/h3>\n\n\n\n<p>Jenkins l\u00e0 m\u1ed9t \u1ee9ng d\u1ee5ng d\u1ef1a tr\u00ean m\u00e1y ch\u1ee7 v\u00e0 \u0111\u00f2i h\u1ecfi ph\u1ea3i c\u00f3 m\u1ed9t m\u00e1y ch\u1ee7 web nh\u01b0 Apache Tomcat \u0111\u1ec3 ch\u1ea1y tr\u00ean c\u00e1c n\u1ec1n t\u1ea3ng kh\u00e1c nhau nh\u01b0 <a href=\"https:\/\/tino.vn\/blog\/he-dieu-hanh-windows-la-gi\/\" target=\"_blank\" rel=\"noreferrer noopener\">Windows<\/a>, Linux, macOS, Unix,..\u0110\u1ec3 s\u1eed d\u1ee5ng Jenkins, b\u1ea1n c\u1ea7n t\u1ea1o c\u00e1c \u0111\u01b0\u1eddng d\u1eabn g\u1ed3m m\u1ed9t lo\u1ea1t c\u00e1c b\u01b0\u1edbc m\u00e0 m\u1ed9t m\u00e1y ch\u1ee7 Jenkins s\u1ebd nh\u1eadn. T\u00edch h\u1ee3p li\u00ean t\u1ee5c l\u00e0 m\u1ed9t c\u00f4ng c\u1ee5 m\u1ea1nh m\u1ebd bao g\u1ed3m m\u1ed9t b\u1ed9 c\u00f4ng c\u1ee5 \u0111\u01b0\u1ee3c thi\u1ebft k\u1ebf \u0111\u1ec3 l\u01b0u tr\u1eef, gi\u00e1m s\u00e1t, bi\u00ean d\u1ecbch v\u00e0 ki\u1ec3m tra m\u00e3 ho\u1eb7c c\u00e1c thay \u0111\u1ed5i m\u00e3.<\/p>\n\n\n\n<ul class=\"wp-block-list\"><li>M\u00e1y ch\u1ee7 t\u00edch h\u1ee3p li\u00ean t\u1ee5c, v\u00ed d\u1ee5 nh\u01b0: Jenkins, Bamboo, CruiseControl, TeamCity,..<\/li><li>C\u00f4ng c\u1ee5 ki\u1ec3m so\u00e1t ngu\u1ed3n, v\u00ed d\u1ee5 nh\u01b0: CVS, SVN, GIT, Mercurial, Perforce, ClearCase v\u00e0 c\u00e1c c\u00f4ng c\u1ee5 kh\u00e1c<\/li><li>C\u00f4ng c\u1ee5 x\u00e2y d\u1ef1ng, v\u00ed d\u1ee5 nh\u01b0: Make, ANT, Maven, Ivy, Gradle v\u00e0 c\u00e1c c\u00f4ng c\u1ee5 kh\u00e1c<\/li><li>Framework ki\u1ec3m tra t\u1ef1 \u0111\u1ed9ng h\u00f3a, v\u00ed d\u1ee5 nh\u01b0: Selenium, Appium, TestComplete, UFT v\u00e0 nh\u1eefng th\u1ee9 kh\u00e1c<\/li><\/ul>\n\n\n\n<div class=\"wp-block-image\"><figure class=\"aligncenter\"><img decoding=\"async\" width=\"700\" height=\"375\" src=\"https:\/\/tino.vn\/blog\/wp-content\/uploads\/2021\/07\/word-image-1163.png\" alt=\"jenkins-la-gi\" class=\"wp-image-28065\" title=\"\" srcset=\"https:\/\/tino.vn\/blog\/wp-content\/uploads\/2021\/07\/word-image-1163.png 700w, https:\/\/tino.vn\/blog\/wp-content\/uploads\/2021\/07\/word-image-1163-300x161.png 300w\" sizes=\"(max-width: 700px) 100vw, 700px\" \/><\/figure><\/div>\n\n\n\n<h2 id=\"CI_v\u00e0_CD_trong_Jenkins\"><strong>CI v\u00e0 CD trong Jenkins<\/strong><\/h2>\n\n\n\n<h3 id=\"CI_(Continuous_Integration)\"><strong>CI (Continuous Integration)<\/strong><\/h3>\n\n\n\n<p>CI l\u00e0 vi\u1ebft t\u1eaft c\u1ee7a <strong>Continuous Integration<\/strong>, t\u1ea1m d\u1ecbch: <strong>T\u00edch h\u1ee3p li\u00ean t\u1ee5c<\/strong>. \u0110\u00e2y l\u00e0 m\u1ed9t qu\u00e1 tr\u00ecnh t\u00edch h\u1ee3p c\u00e1c thay \u0111\u1ed5i code t\u1eeb nhi\u1ec1u nh\u00e0 ph\u00e1t tri\u1ec3n trong m\u1ed9t d\u1ef1 \u00e1n. Ph\u1ea7n m\u1ec1m \u0111\u01b0\u1ee3c ki\u1ec3m tra ngay l\u1eadp t\u1ee9c sau khi code commit. V\u1edbi m\u1ed7i code commit, code s\u1ebd \u0111\u01b0\u1ee3c ti\u1ebfn h\u00e0nh x\u00e2y d\u1ef1ng v\u00e0 th\u1eed nghi\u1ec7m. N\u1ebfu th\u1eed nghi\u1ec7m \u0111\u01b0\u1ee3c th\u00f4ng qua, b\u1ea3n d\u1ef1ng s\u1ebd \u0111\u01b0\u1ee3c th\u1eed nghi\u1ec7m \u0111\u1ec3 tri\u1ec3n khai. N\u1ebfu vi\u1ec7c tri\u1ec3n khai th\u00e0nh c\u00f4ng, m\u00e3 s\u1ebd \u0111\u01b0\u1ee3c chuy\u1ec3n sang s\u1ea3n xu\u1ea5t.<\/p>\n\n\n\n<p>Qu\u00e1 tr\u00ecnh cam k\u1ebft, x\u00e2y d\u1ef1ng, ki\u1ec3m tra v\u00e0 tri\u1ec3n khai n\u00e0y l\u00e0 m\u1ed9t qu\u00e1 tr\u00ecnh li\u00ean t\u1ee5c v\u00e0 do \u0111\u00f3 m\u1edbi \u0111\u01b0\u1ee3c g\u1ecdi l\u00e0 t\u00edch h\u1ee3p\/tri\u1ec3n khai li\u00ean t\u1ee5c.<\/p>\n\n\n\n<h3 id=\"CD_(Continuous_Delivery)\"><strong>CD (Continuous Delivery)<\/strong><\/h3>\n\n\n\n<p>CD l\u00e0 vi\u1ebft t\u1eaft c\u1ee7a <strong>Continuous Delivery<\/strong>, t\u1ea1m d\u1ecbch: <strong>Chuy\u1ec3n giao li\u00ean t\u1ee5c<\/strong>. \u0110\u00e2y l\u00e0 quy tr\u00ecnh tri\u1ec3n khai t\u1ea5t c\u1ea3 thay \u0111\u1ed5i trong qu\u00e1 tr\u00ecnh t\u1ef1 \u0111\u1ed9ng test v\u00e0 deploy c\u00e1c code l\u00ean c\u00e1c m\u00f4i tr\u01b0\u1eddng staging v\u00e0 production. Ngo\u00e0i ra, CD c\u00f2n h\u1ed7 tr\u1ee3 t\u1ef1 \u0111\u1ed9ng h\u00f3a ph\u1ea7n testing b\u00ean c\u1ea1nh vi\u1ec7c s\u1eed d\u1ee5ng units test. M\u1ee5c \u0111\u00edch c\u1ee7a CD l\u00e0 th\u1eed nghi\u1ec7m ph\u1ea7n m\u1ec1m li\u00ean t\u1ee5c \u0111\u1ec3 ki\u1ec3m tra h\u1ec7 th\u1ed1ng tr\u01b0\u1edbc khi b\u00e0n giao cho kh\u00e1ch h\u00e0ng.<\/p>\n\n\n\n<div class=\"wp-block-image\"><figure class=\"aligncenter\"><img decoding=\"async\" width=\"700\" height=\"375\" src=\"https:\/\/tino.vn\/blog\/wp-content\/uploads\/2021\/07\/word-image-1164.png\" alt=\"jenkins-la-gi\" class=\"wp-image-28066\" title=\"\" srcset=\"https:\/\/tino.vn\/blog\/wp-content\/uploads\/2021\/07\/word-image-1164.png 700w, https:\/\/tino.vn\/blog\/wp-content\/uploads\/2021\/07\/word-image-1164-300x161.png 300w\" sizes=\"(max-width: 700px) 100vw, 700px\" \/><\/figure><\/div>\n\n\n\n<h2 id=\"\u01afu_\u0111i\u1ec3m_v\u00e0_nh\u01b0\u1ee3c_\u0111i\u1ec3m_c\u1ee7a_Jenkins\"><strong>\u01afu \u0111i\u1ec3m v\u00e0 nh\u01b0\u1ee3c \u0111i\u1ec3m c\u1ee7a Jenkins<\/strong><\/h2>\n\n\n\n<h3 id=\"\u01afu_\u0111i\u1ec3m\"><strong>\u01afu \u0111i\u1ec3m<\/strong><\/h3>\n\n\n\n<ul class=\"wp-block-list\"><li>Jenkins \u0111ang \u0111\u01b0\u1ee3c qu\u1ea3n l\u00fd r\u1ea5t t\u00edch c\u1ef1c. M\u1ed7i th\u00e1ng, c\u00f4ng ty ph\u00e1t h\u00e0nh Jenkins s\u1ebd t\u1ed5 ch\u1ee9c c\u00e1c cu\u1ed9c h\u1ecdp c\u00f4ng khai v\u00e0 l\u1ea5y \u00fd ki\u1ebfn \u200b\u200b\u0111\u00f3ng g\u00f3p t\u1eeb c\u1ed9ng \u0111\u1ed3ng \u0111\u1ec3 ph\u00e1t tri\u1ec3n d\u1ef1 \u00e1n Jenkins.<\/li><li>Jenkins \u0111\u00e3 c\u00f3 kho\u1ea3ng 320 Plugin \u0111\u01b0\u1ee3c xu\u1ea5t b\u1ea3n trong c\u01a1 s\u1edf d\u1eef li\u1ec7u Plugin c\u1ee7a m\u00ecnh.<\/li><li>C\u00f4ng c\u1ee5 Jenkins c\u0169ng h\u1ed7 tr\u1ee3 ki\u1ebfn \u200b\u200btr\u00fac \u0111\u00e1m m\u00e2y \u0111\u1ec3 b\u1ea1n c\u00f3 th\u1ec3 tri\u1ec3n khai Jenkins tr\u00ean c\u00e1c n\u1ec1n t\u1ea3ng d\u1ef1a tr\u00ean \u0111\u00e1m m\u00e2y.<\/li><li>T\u00edch h\u1ee3p v\u1edbi nhi\u1ec1u n\u1ec1n t\u1ea3ng CI\/CD v\u00e0 gi\u00fap cho team \u0111\u01b0\u1ee3c \u0111\u1ed3ng b\u1ed9 h\u00f3a<\/li><li>R\u1ea5t d\u1ec5 d\u00e0ng \u0111\u1ec3 t\u00ecm ra c\u00e1c l\u1ed7i trong Jenkins. Nh\u00e0 ph\u00e1t tri\u1ec3n c\u00f3 th\u1ec3 ki\u1ec3m tra l\u1ed7i v\u00e0 gi\u1ea3i quy\u1ebft ch\u00fang nhanh ch\u00f3ng.<\/li><li>R\u00fat ng\u1eafn th\u1eddi gian b\u00e0n giao d\u1ef1 \u00e1n v\u00e0 linh ho\u1ea1t trong c\u00f4ng vi\u1ec7c<\/li><li>Jenkins h\u1ed7 tr\u1ee3 c\u00e1c lo\u1ea1i kho m\u00e3 ngu\u1ed3n kh\u00e1c nhau nh\u01b0 SVN, Git, v.v. Nh\u00e0 ph\u00e1t tri\u1ec3n c\u00f3 th\u1ec3 \u0111\u1eb7t c\u00e1c tr\u00ecnh k\u00edch ho\u1ea1t kh\u00e1c nhau sau khi th\u1ef1c hi\u1ec7n c\u00e1c thay \u0111\u1ed5i trong m\u00e3.<\/li><\/ul>\n\n\n\n<h3 id=\"Nh\u01b0\u1ee3c_\u0111i\u1ec3m\"><strong>Nh\u01b0\u1ee3c \u0111i\u1ec3m<\/strong><\/h3>\n\n\n\n<ul class=\"wp-block-list\"><li>Giao di\u1ec7n c\u1ee7a Jenkins \u0111\u00e3 l\u1ed7i th\u1eddi v\u00e0 kh\u00f4ng th\u00e2n thi\u1ec7n v\u1edbi ng\u01b0\u1eddi d\u00f9ng so v\u1edbi xu h\u01b0\u1edbng hi\u1ec7n t\u1ea1i.<\/li><li>Vi\u1ec7c qu\u1ea3n l\u00fd b\u1ea3ng \u0111i\u1ec1u khi\u1ec3n Jenkins kh\u00e1 kh\u00f3 kh\u0103n khi ch\u00fang ta c\u00f3 qu\u00e1 nhi\u1ec1u c\u00f4ng vi\u1ec7c ph\u1ea3i th\u1ef1c hi\u1ec7n.<\/li><li>Vi\u1ec7c b\u1ea3o tr\u00ec Jenkins kh\u00f4ng d\u1ec5 d\u00e0ng v\u00ec ph\u1ea7n m\u1ec1m n\u00e0y ch\u1ea1y tr\u00ean m\u1ed9t m\u00e1y ch\u1ee7 v\u00e0 y\u00eau c\u1ea7u m\u1ed9t s\u1ed1 k\u1ef9 n\u0103ng nh\u01b0 qu\u1ea3n tr\u1ecb vi\u00ean m\u00e1y ch\u1ee7 \u0111\u1ec3 gi\u00e1m s\u00e1t ho\u1ea1t \u0111\u1ed9ng c\u1ee7a n\u00f3.<\/li><li>G\u1eb7p m\u1ed9t s\u1ed1 kh\u00f3 kh\u0103n trong vi\u1ec7c c\u00e0i \u0111\u1eb7t v\u00e0 c\u1ea5u h\u00ecnh Jenkins.<\/li><li>B\u1ea1n ph\u1ea3i t\u1ef1 m\u00ecnh b\u1ea3o tr\u00ec c\u01a1 s\u1edf h\u1ea1 t\u1ea7ng.<\/li><li>T\u00edch h\u1ee3p li\u00ean t\u1ee5c th\u01b0\u1eddng xuy\u00ean b\u1ecb h\u1ecfng do m\u1ed9t s\u1ed1 thay \u0111\u1ed5i nh\u1ecf trong c\u00e0i \u0111\u1eb7t.<\/li><li>C\u00e1c thay \u0111\u1ed5i do m\u1ed9t nh\u00e0 ph\u00e1t tri\u1ec3n th\u1ef1c hi\u1ec7n s\u1ebd \u0111\u01b0\u1ee3c kh\u00f4ng hi\u1ec3n th\u1ecb v\u1edbi m\u1ed9t nh\u00e0 ph\u00e1t tri\u1ec3n kh\u00e1c trong nh\u00f3m v\u00e0 ch\u1ec9 c\u00f3 ng\u01b0\u1eddi qu\u1ea3n l\u00fd m\u1edbi c\u00f3 quy\u1ec1n truy c\u1eadp. \u0110i\u1ec1u n\u00e0y l\u00e0m cho vi\u1ec7c theo d\u00f5i d\u1ef1 \u00e1n l\u1edbn g\u1eb7p kh\u00f3 kh\u0103n.<\/li><\/ul>\n\n\n\n<div class=\"wp-block-image\"><figure class=\"aligncenter\"><img decoding=\"async\" width=\"700\" height=\"375\" src=\"https:\/\/tino.vn\/blog\/wp-content\/uploads\/2021\/07\/word-image-1165.png\" alt=\"jenkins-la-gi\" class=\"wp-image-28067\" title=\"\" srcset=\"https:\/\/tino.vn\/blog\/wp-content\/uploads\/2021\/07\/word-image-1165.png 700w, https:\/\/tino.vn\/blog\/wp-content\/uploads\/2021\/07\/word-image-1165-300x161.png 300w\" sizes=\"(max-width: 700px) 100vw, 700px\" \/><\/figure><\/div>\n\n\n\n<h3 id=\"H\u01b0\u1edbng_d\u1eabn_c\u00e1ch_c\u00e0i_\u0111\u1eb7t_Jenkins\"><strong>H\u01b0\u1edbng d\u1eabn c\u00e1ch c\u00e0i \u0111\u1eb7t Jenkins<\/strong><\/h3>\n\n\n\n<p><strong>B\u01b0\u1edbc 1:<\/strong> Download Jenkins t\u1ea1i<a href=\"https:\/\/www.jenkins.io\/\" target=\"_blank\" rel=\"noreferrer noopener nofollow\"> \u0111\u00e2y<\/a><\/p>\n\n\n\n<p><strong>B\u01b0\u1edbc 2:<\/strong> Gi\u1ea3i n\u00e9n file Jenkins \u0111\u00e3 t\u1ea3i xu\u1ed1ng<\/p>\n\n\n\n<p><strong>B\u01b0\u1edbc 3:<\/strong> Th\u1ef1c hi\u1ec7n c\u00e1c thao t\u00e1c \u0111\u1ec3 c\u00e0i \u0111\u1eb7t<\/p>\n\n\n\n<div class=\"wp-block-image\"><figure class=\"aligncenter\"><img decoding=\"async\" width=\"700\" height=\"375\" src=\"https:\/\/tino.vn\/blog\/wp-content\/uploads\/2021\/07\/word-image-1166.png\" alt=\"jenkins-la-gi\" class=\"wp-image-28068\" title=\"\" srcset=\"https:\/\/tino.vn\/blog\/wp-content\/uploads\/2021\/07\/word-image-1166.png 700w, https:\/\/tino.vn\/blog\/wp-content\/uploads\/2021\/07\/word-image-1166-300x161.png 300w\" sizes=\"(max-width: 700px) 100vw, 700px\" \/><\/figure><\/div>\n\n\n\n<p><strong>B\u01b0\u1edbc 4:<\/strong> T\u1ef1 \u0111\u1ed9ng chuy\u1ec3n h\u01b0\u1edbng \u0111\u1ebfn trang Jenkins ho\u1eb7c b\u1ea1n c\u0169ng c\u00f3 th\u1ec3 truy c\u1eadp t\u1ea1i <a href=\"https:\/\/localhosts.mobi\/8080\" target=\"_blank\" rel=\"noreferrer noopener nofollow\">\u0111\u00e2y<\/a>.<\/p>\n\n\n\n<p><strong>B\u01b0\u1edbc 5:<\/strong> \u0110\u1ec3 m\u1edf kh\u00f3a Jenkins, b\u1ea1n h\u00e3y truy c\u1eadp theo \u0111\u01b0\u1eddng d\u1eabn sau: <strong>C: \\ Program Files (x86)\\Jenkins\\secret\\initialAdminPassword<\/strong>. Sau \u0111\u00f3 copy v\u00e0 d\u00e1n v\u00e0o Administrator password nh\u01b0 tr\u00ean h\u00ecnh r\u1ed1i nh\u1ea5p <strong>\u201cContinue\u201d.<\/strong><\/p>\n\n\n\n<div class=\"wp-block-image\"><figure class=\"aligncenter\"><img decoding=\"async\" width=\"700\" height=\"375\" src=\"https:\/\/tino.vn\/blog\/wp-content\/uploads\/2021\/07\/word-image-1167.png\" alt=\"jenkins-la-gi\" class=\"wp-image-28069\" title=\"\" srcset=\"https:\/\/tino.vn\/blog\/wp-content\/uploads\/2021\/07\/word-image-1167.png 700w, https:\/\/tino.vn\/blog\/wp-content\/uploads\/2021\/07\/word-image-1167-300x161.png 300w\" sizes=\"(max-width: 700px) 100vw, 700px\" \/><\/figure><\/div>\n\n\n\n<p><strong>B\u01b0\u1edbc 6: <\/strong>B\u1ea1n c\u00f3 th\u1ec3 b\u1eaft \u0111\u1ea7u c\u00e0i \u0111\u1eb7t c\u00e1c Plugin cho Jenkins<\/p>\n\n\n\n<div class=\"wp-block-image\"><figure class=\"aligncenter\"><img decoding=\"async\" width=\"700\" height=\"375\" src=\"https:\/\/tino.vn\/blog\/wp-content\/uploads\/2021\/07\/word-image-1168.png\" alt=\"jenkins-la-gi\" class=\"wp-image-28070\" title=\"\" srcset=\"https:\/\/tino.vn\/blog\/wp-content\/uploads\/2021\/07\/word-image-1168.png 700w, https:\/\/tino.vn\/blog\/wp-content\/uploads\/2021\/07\/word-image-1168-300x161.png 300w\" sizes=\"(max-width: 700px) 100vw, 700px\" \/><\/figure><\/div>\n\n\n\n<p><strong>B\u01b0\u1edbc 7: <\/strong>T\u1ea1o user v\u00e0 nh\u1eadp c\u00e1c th\u00f4ng tin c\u1ea7n thi\u1ebft sau \u0111\u00f3 ch\u1ecdn <strong>Save and Continue -&gt; Save and Finish -&gt; Start using Jenkins<\/strong><\/p>\n\n\n\n<div class=\"wp-block-image\"><figure class=\"aligncenter\"><img decoding=\"async\" width=\"700\" height=\"375\" src=\"https:\/\/tino.vn\/blog\/wp-content\/uploads\/2021\/07\/word-image-1169.png\" alt=\"jenkins-la-gi\" class=\"wp-image-28071\" title=\"\" srcset=\"https:\/\/tino.vn\/blog\/wp-content\/uploads\/2021\/07\/word-image-1169.png 700w, https:\/\/tino.vn\/blog\/wp-content\/uploads\/2021\/07\/word-image-1169-300x161.png 300w\" sizes=\"(max-width: 700px) 100vw, 700px\" \/><\/figure><\/div>\n\n\n\n<p><strong>B\u01b0\u1edbc 8: <\/strong>Sau khi ho\u00e0n t\u1ea5t thi\u1ebft l\u1eadp, b\u1ea1n c\u00f3 th\u1ec3 truy c\u1eadp v\u00e0o giao di\u1ec7n ch\u00ednh c\u1ee7a Jenkins<\/p>\n\n\n\n<div class=\"wp-block-image\"><figure class=\"aligncenter\"><img decoding=\"async\" width=\"700\" height=\"375\" src=\"https:\/\/tino.vn\/blog\/wp-content\/uploads\/2021\/07\/word-image-1170.png\" alt=\"jenkins-la-gi\" class=\"wp-image-28072\" title=\"\" srcset=\"https:\/\/tino.vn\/blog\/wp-content\/uploads\/2021\/07\/word-image-1170.png 700w, https:\/\/tino.vn\/blog\/wp-content\/uploads\/2021\/07\/word-image-1170-300x161.png 300w\" sizes=\"(max-width: 700px) 100vw, 700px\" \/><\/figure><\/div>\n\n\n\n<p>T\u00f3m l\u1ea1i, Jenkins l\u00e0 m\u1ed9t c\u00f4ng c\u1ee5 tuy\u1ec7t v\u1eddi \u0111\u1ec3 c\u00e1c nh\u00e0 ph\u00e1t tri\u1ec3n th\u1ef1c hi\u1ec7n c\u00f4ng vi\u1ec7c l\u1eadp c\u1ee7a m\u00ecnh m\u1ed9t c\u00e1ch nhanh ch\u00f3ng v\u00e0 hi\u1ec7u qu\u1ea3 h\u01a1n. B\u00e0i vi\u1ebft \u0111\u00e3 gi\u1edbi thi\u1ec7u m\u1ed9t s\u1ed1 th\u00f4ng tin v\u1ec1 Jenkins, b\u1ea1n h\u00e3y tham kh\u1ea3o \u0111\u1ec3 s\u1eed d\u1ee5ng nh\u00e9!<\/p>\n\n\n\n<h2 id=\"FAQs_v\u1ec1_Jenkins\"><strong>FAQs v\u1ec1 Jenkins<\/strong><\/h2>\n\n\n\t\t<section\t\thelp class=\"sc_fs_faq sc_card    \"\n\t\t\t\t>\n\t\t\t\t<h2 id=\"B\u1ea3o_m\u1eadt_c\u1ee7a_Jenkins_l\u00e0_g\u00ec?\">B\u1ea3o m\u1eadt c\u1ee7a Jenkins l\u00e0 g\u00ec?<\/h2>\t\t\t\t<div>\n\t\t\t\t\t\t<div class=\"sc_fs_faq__content\">\n\t\t\t\t\n\n<p>B\u1ea3o m\u1eadt c\u1ee7a Jenkins ch\u1ee7 y\u1ebfu l\u00e0 b\u1ea3o v\u1ec7 c\u00e1c m\u00e1y ch\u1ee7 v\u00e0 ng\u01b0\u1eddi d\u00f9ng. Quy\u1ec1n truy c\u1eadp v\u00e0o n\u01a1i l\u01b0u tr\u1eef nh\u01b0 m\u00e1y \u1ea3o hay m\u1ed9t m\u00e1y ch\u1ee7 v\u1eadt l\u00fd n\u00e0o \u0111\u00f3 s\u1ebd \u0111\u01b0\u1ee3c c\u1ea5u h\u00ecnh sao cho s\u1ed1 l\u01b0\u1ee3ng process k\u1ebft n\u1ed1i t\u1edbi n\u00f3 l\u00e0 \u00edt nh\u1ea5t. \u0110i\u1ec1u n\u00e0y s\u1ebd \u0111\u01b0\u1ee3c th\u1ef1c hi\u1ec7n th\u00f4ng qua m\u1ed9t s\u1ed1 t\u00ednh n\u0103ng c\u1ee7a h\u1ec7 \u0111i\u1ec1u h\u00e0nh v\u00e0 c\u00e1c t\u00ednh n\u0103ng b\u1ea3o m\u1eadt k\u1ebft n\u1ed1i m\u1ea1ng.<\/p>\n\n\n\n<p>Ngo\u00e0i ra, quy\u1ec1n truy c\u1eadp v\u00e0o giao di\u1ec7n UI c\u1ee7a Jenkins \u0111\u01b0\u1ee3c h\u1ea1n ch\u1ebf b\u1eb1ng c\u00e1ch s\u1eed d\u1ee5ng b\u1ea3o m\u1eadt x\u00e1c th\u1ef1c \u0111a y\u1ebfu t\u1ed1 (Multifactor Authentication).<\/p>\n\n\t\t\t<\/div>\n\t\t<\/div>\n\t\t<\/section>\n\t\t\t\t<section\t\thelp class=\"sc_fs_faq sc_card    \"\n\t\t\t\t>\n\t\t\t\t<h2 id=\"L\u00e0m_sao_\u0111\u1ea3m_b\u1ea3o_c\u01a1_s\u1edf_d\u1eef_li\u1ec7u_Jenkins_an_to\u00e0n?\">L\u00e0m sao \u0111\u1ea3m b\u1ea3o c\u01a1 s\u1edf d\u1eef li\u1ec7u Jenkins an to\u00e0n?<\/h2>\t\t\t\t<div>\n\t\t\t\t\t\t<div class=\"sc_fs_faq__content\">\n\t\t\t\t\n\n<p>V\u1edbi Jenkins, c\u00f3 nhi\u1ec1u c\u00e1ch \u0111\u1ec3 \u0111\u1ea3m b\u1ea3o an ninh \u1edf m\u1ee9c cao nh\u1ea5t, nh\u01b0ng m\u1ed9t c\u00e1ch \u0111\u00e1ng ch\u00fa \u00fd nh\u1ea5t l\u00e0 ch\u1ea1y ki\u1ec3m tra b\u1ea3o m\u1eadt, gi\u1eef an ninh to\u00e0n c\u1ea7u, gi\u1eef cho c\u01a1 s\u1edf d\u1eef li\u1ec7u \u0111\u01b0\u1ee3c b\u1ea3o v\u1ec7 \u1edf m\u1ee9c v\u1eadt l\u00fd (tr\u00e1nh ng\u01b0\u1eddi ti\u1ebfp c\u1eadn tr\u00e1i ph\u00e9p),..<\/p>\n\n\t\t\t<\/div>\n\t\t<\/div>\n\t\t<\/section>\n\t\t\t\t<section\t\thelp class=\"sc_fs_faq sc_card    \"\n\t\t\t\t>\n\t\t\t\t<h2 id=\"C\u00f3_n\u00ean_s\u1eed_d\u1ee5ng_Jenkins_c\u00f9ng_v\u1edbi_Selenium_kh\u00f4ng?\">C\u00f3 n\u00ean s\u1eed d\u1ee5ng Jenkins c\u00f9ng v\u1edbi Selenium kh\u00f4ng?<\/h2>\t\t\t\t<div>\n\t\t\t\t\t\t<div class=\"sc_fs_faq__content\">\n\t\t\t\t\n\n<p>B\u1ea1n c\u00f3 th\u1ec3 s\u1eed d\u1ee5ng k\u1ebft h\u1ee3p hai c\u00f4ng c\u1ee5 n\u00e0y ch\u00fang s\u1ebd \u0111em l\u1ea1i nh\u1eefng l\u1ee3i \u00edch nh\u1ea5t \u0111\u1ecbnh. Khi k\u1ebft h\u1ee3p nh\u01b0 v\u1eady, vi\u1ec7c ch\u1ea1y th\u1eed nghi\u1ec7m s\u1ebd \u0111\u01b0\u1ee3c di\u1ec5n ra ngay l\u1eadp t\u1ee9c m\u1ed7i khi ch\u01b0\u01a1ng tr\u00ecnh c\u1ee7a b\u1ea1n c\u00f3 thay \u0111\u1ed5i ho\u1eb7c ch\u1ec9nh s\u1eeda.<\/p>\n\n\t\t\t<\/div>\n\t\t<\/div>\n\t\t<\/section>\n\t\t\t\t<section\t\thelp class=\"sc_fs_faq sc_card    \"\n\t\t\t\t>\n\t\t\t\t<h2 id=\"Pipeline_l\u00e0_g\u00ec?\">Pipeline l\u00e0 g\u00ec?<\/h2>\t\t\t\t<div>\n\t\t\t\t\t\t<div class=\"sc_fs_faq__content\">\n\t\t\t\t\n\n<p>Thu\u1eadt ng\u1eef \u201cpipeline\u201d th\u01b0\u1eddng \u0111\u01b0\u1ee3c s\u1eed d\u1ee5ng \u0111\u1ec3 m\u00f4 t\u1ea3 qu\u00e1 tr\u00ecnh t\u1eeb c\u00e1c giai \u0111o\u1ea1n \u0111\u1ea7u ti\u00ean c\u1ee7a m\u1ed9t d\u1ef1 \u00e1n \u0111\u1ebfn khi ph\u00e1t h\u00e0nh ra c\u00f4ng ch\u00fang.<\/p>\n\n\t\t\t<\/div>\n\t\t<\/div>\n\t\t<\/section>\n\t\t\n<script type=\"application\/ld+json\">\n\t{\n\t\t\"@context\": \"https:\/\/schema.org\",\n\t\t\"@type\": \"FAQPage\",\n\t\t\"mainEntity\": [\n\t\t\t\t\t{\n\t\t\t\t\"@type\": \"Question\",\n\t\t\t\t\"name\": \"B\u1ea3o m\u1eadt c\u1ee7a Jenkins l\u00e0 g\u00ec?\",\n\t\t\t\t\"acceptedAnswer\": {\n\t\t\t\t\t\"@type\": \"Answer\",\n\t\t\t\t\t\"text\": \"<p>B\u1ea3o m\u1eadt c\u1ee7a Jenkins ch\u1ee7 y\u1ebfu l\u00e0 b\u1ea3o v\u1ec7 c\u00e1c m\u00e1y ch\u1ee7 v\u00e0 ng\u01b0\u1eddi d\u00f9ng. Quy\u1ec1n truy c\u1eadp v\u00e0o n\u01a1i l\u01b0u tr\u1eef nh\u01b0 m\u00e1y \u1ea3o hay m\u1ed9t m\u00e1y ch\u1ee7 v\u1eadt l\u00fd n\u00e0o \u0111\u00f3 s\u1ebd \u0111\u01b0\u1ee3c c\u1ea5u h\u00ecnh sao cho s\u1ed1 l\u01b0\u1ee3ng process k\u1ebft n\u1ed1i t\u1edbi n\u00f3 l\u00e0 \u00edt nh\u1ea5t. \u0110i\u1ec1u n\u00e0y s\u1ebd \u0111\u01b0\u1ee3c th\u1ef1c hi\u1ec7n th\u00f4ng qua m\u1ed9t s\u1ed1 t\u00ednh n\u0103ng c\u1ee7a h\u1ec7 \u0111i\u1ec1u h\u00e0nh v\u00e0 c\u00e1c t\u00ednh n\u0103ng b\u1ea3o m\u1eadt k\u1ebft n\u1ed1i m\u1ea1ng.<\/p><p>Ngo\u00e0i ra, quy\u1ec1n truy c\u1eadp v\u00e0o giao di\u1ec7n UI c\u1ee7a Jenkins \u0111\u01b0\u1ee3c h\u1ea1n ch\u1ebf b\u1eb1ng c\u00e1ch s\u1eed d\u1ee5ng b\u1ea3o m\u1eadt x\u00e1c th\u1ef1c \u0111a y\u1ebfu t\u1ed1 (Multifactor Authentication).<\/p>\"\n\t\t\t\t\t\t\t\t\t}\n\t\t\t}\n\t\t\t,\t\t\t\t{\n\t\t\t\t\"@type\": \"Question\",\n\t\t\t\t\"name\": \"L\u00e0m sao \u0111\u1ea3m b\u1ea3o c\u01a1 s\u1edf d\u1eef li\u1ec7u Jenkins an to\u00e0n?\",\n\t\t\t\t\"acceptedAnswer\": {\n\t\t\t\t\t\"@type\": \"Answer\",\n\t\t\t\t\t\"text\": \"<p>V\u1edbi Jenkins, c\u00f3 nhi\u1ec1u c\u00e1ch \u0111\u1ec3 \u0111\u1ea3m b\u1ea3o an ninh \u1edf m\u1ee9c cao nh\u1ea5t, nh\u01b0ng m\u1ed9t c\u00e1ch \u0111\u00e1ng ch\u00fa \u00fd nh\u1ea5t l\u00e0 ch\u1ea1y ki\u1ec3m tra b\u1ea3o m\u1eadt, gi\u1eef an ninh to\u00e0n c\u1ea7u, gi\u1eef cho c\u01a1 s\u1edf d\u1eef li\u1ec7u \u0111\u01b0\u1ee3c b\u1ea3o v\u1ec7 \u1edf m\u1ee9c v\u1eadt l\u00fd (tr\u00e1nh ng\u01b0\u1eddi ti\u1ebfp c\u1eadn tr\u00e1i ph\u00e9p),..<\/p>\"\n\t\t\t\t\t\t\t\t\t}\n\t\t\t}\n\t\t\t,\t\t\t\t{\n\t\t\t\t\"@type\": \"Question\",\n\t\t\t\t\"name\": \"C\u00f3 n\u00ean s\u1eed d\u1ee5ng Jenkins c\u00f9ng v\u1edbi Selenium kh\u00f4ng?\",\n\t\t\t\t\"acceptedAnswer\": {\n\t\t\t\t\t\"@type\": \"Answer\",\n\t\t\t\t\t\"text\": \"<p>B\u1ea1n c\u00f3 th\u1ec3 s\u1eed d\u1ee5ng k\u1ebft h\u1ee3p hai c\u00f4ng c\u1ee5 n\u00e0y ch\u00fang s\u1ebd \u0111em l\u1ea1i nh\u1eefng l\u1ee3i \u00edch nh\u1ea5t \u0111\u1ecbnh. Khi k\u1ebft h\u1ee3p nh\u01b0 v\u1eady, vi\u1ec7c ch\u1ea1y th\u1eed nghi\u1ec7m s\u1ebd \u0111\u01b0\u1ee3c di\u1ec5n ra ngay l\u1eadp t\u1ee9c m\u1ed7i khi ch\u01b0\u01a1ng tr\u00ecnh c\u1ee7a b\u1ea1n c\u00f3 thay \u0111\u1ed5i ho\u1eb7c ch\u1ec9nh s\u1eeda.<\/p>\"\n\t\t\t\t\t\t\t\t\t}\n\t\t\t}\n\t\t\t,\t\t\t\t{\n\t\t\t\t\"@type\": \"Question\",\n\t\t\t\t\"name\": \"Pipeline l\u00e0 g\u00ec?\",\n\t\t\t\t\"acceptedAnswer\": {\n\t\t\t\t\t\"@type\": \"Answer\",\n\t\t\t\t\t\"text\": \"<p>Thu\u1eadt ng\u1eef \u201cpipeline\u201d th\u01b0\u1eddng \u0111\u01b0\u1ee3c s\u1eed d\u1ee5ng \u0111\u1ec3 m\u00f4 t\u1ea3 qu\u00e1 tr\u00ecnh t\u1eeb c\u00e1c giai \u0111o\u1ea1n \u0111\u1ea7u ti\u00ean c\u1ee7a m\u1ed9t d\u1ef1 \u00e1n \u0111\u1ebfn khi ph\u00e1t h\u00e0nh ra c\u00f4ng ch\u00fang.<\/p>\"\n\t\t\t\t\t\t\t\t\t}\n\t\t\t}\n\t\t\t\t\t\t]\n\t}\n<\/script>\n\n\n","protected":false},"excerpt":{"rendered":"<p>L\u1eadp tr\u00ecnh hi\u1ec7n \u0111\u1ea1i cho ph\u00e9p nh\u00e0 ph\u00e1t tri\u1ec3n th\u1ef1c hi\u1ec7n c\u00e1c t\u00e1c v\u1ee5 nh\u01b0 l\u1ea5y code m\u1edbi nh\u1ea5t, build, deploy,..m\u1ed9t c\u00e1ch t\u1ef1 \u0111\u1ed9ng h\u00f3a v\u00e0 b\u1ecf qua c\u00e1c b\u01b0\u1edbc th\u1ee7 c\u00f4ng nh\u01b0 tr\u01b0\u1edbc \u0111\u00e2y. \u0110\u1ec3 l\u00e0m \u0111\u01b0\u1ee3c nh\u01b0 v\u1eady, h\u1ecd ph\u1ea3i c\u1ea7n m\u1ed9t s\u1ed1 ph\u1ea7n m\u1ec1m chuy\u00ean d\u1ee5ng, \u0111i\u1ec3n h\u00ecnh l\u00e0 Jenkins. V\u1eady Jenkins [&hellip;]<\/p>\n","protected":false},"author":23,"featured_media":28063,"comment_status":"open","ping_status":"closed","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[5404],"tags":[6187],"class_list":["post-28062","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-webmasters","tag-ho-tro-developer"],"_links":{"self":[{"href":"https:\/\/tino.vn\/blog\/wp-json\/wp\/v2\/posts\/28062","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/tino.vn\/blog\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/tino.vn\/blog\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/tino.vn\/blog\/wp-json\/wp\/v2\/users\/23"}],"replies":[{"embeddable":true,"href":"https:\/\/tino.vn\/blog\/wp-json\/wp\/v2\/comments?post=28062"}],"version-history":[{"count":0,"href":"https:\/\/tino.vn\/blog\/wp-json\/wp\/v2\/posts\/28062\/revisions"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/tino.vn\/blog\/wp-json\/wp\/v2\/media\/28063"}],"wp:attachment":[{"href":"https:\/\/tino.vn\/blog\/wp-json\/wp\/v2\/media?parent=28062"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/tino.vn\/blog\/wp-json\/wp\/v2\/categories?post=28062"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/tino.vn\/blog\/wp-json\/wp\/v2\/tags?post=28062"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}