<?xml version="1.0" encoding="UTF-8"?><rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:wfw="http://wellformedweb.org/CommentAPI/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	xmlns:atom="http://www.w3.org/2005/Atom"
	xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
	xmlns:slash="http://purl.org/rss/1.0/modules/slash/"
	>

<channel>
	<title>Jenkins &#8211; Few Steps &#8211; ก้าวสั้นๆ แต่ไปเรื่อยๆ</title>
	<atom:link href="https://myifew.com/tag/jenkins/feed/" rel="self" type="application/rss+xml" />
	<link>https://myifew.com</link>
	<description></description>
	<lastBuildDate>Sat, 24 Jun 2017 15:53:41 +0000</lastBuildDate>
	<language>en-US</language>
	<sy:updatePeriod>
	hourly	</sy:updatePeriod>
	<sy:updateFrequency>
	1	</sy:updateFrequency>
	<generator>https://wordpress.org/?v=6.9.4</generator>

<image>
	<url>https://myifew.com/wp-content/uploads/2018/07/cropped-logo6-ts-32x32.png</url>
	<title>Jenkins &#8211; Few Steps &#8211; ก้าวสั้นๆ แต่ไปเรื่อยๆ</title>
	<link>https://myifew.com</link>
	<width>32</width>
	<height>32</height>
</image> 
	<item>
		<title>เริ่มต้นทำ CI/CD – Automation Deployment ด้วย Git และ Jenkins (3 &#8211; จบ)</title>
		<link>https://myifew.com/4072/automation-deploy-git-bitbucket-jenkins/</link>
					<comments>https://myifew.com/4072/automation-deploy-git-bitbucket-jenkins/#respond</comments>
		
		<dc:creator><![CDATA[iFew]]></dc:creator>
		<pubDate>Sun, 18 Jun 2017 06:43:31 +0000</pubDate>
				<category><![CDATA[Technology]]></category>
		<category><![CDATA[Automation Testing]]></category>
		<category><![CDATA[Automation Tools]]></category>
		<category><![CDATA[Bitbucket]]></category>
		<category><![CDATA[Continuous Delivery]]></category>
		<category><![CDATA[Continuous Deployment]]></category>
		<category><![CDATA[Continuous Integration]]></category>
		<category><![CDATA[Jenkins]]></category>
		<guid isPermaLink="false">https://myifew.com/?p=4072</guid>

					<description><![CDATA[เมื่อเขียนโค้ดเสร็จและทำการทดสอบเสร็จ จะดีกว่าไหม ถ้าโค้ดเราจะขึ้น Production Server ได้อัตโนมัติทันที]]></description>
										<content:encoded><![CDATA[<p>ความเดิมสองตอนก่อนคือ <a href="https://myifew.com/4027/how-to-setup-jenkins-automation-tools/">วิธีติดตั้ง Jenkin</a> และ <a href="https://myifew.com/4039/automation-testing-by-phpunit-and-jenkins/">วิธีใช้ PHPUnit เพื่อทำ Automation Test</a> ซึ่งเราก็ได้เห็นภาพของ CI (Continuous Integration) กันมาแล้ว มาบล็อกครั้งนี้เป็นตอนสุดท้ายของซีรี่ &#8220;เริ่มต้นทำ CI/CD&#8221; ก็คือ หลังจากเขียนโค้ดและทดสอบผ่านทั้งหมด เราจะให้ Jenkins นำโค้ดที่ทำเข้าสู่ Production Server ให้อัตโนมัติ (Automation Deployment)<span id="more-4072"></span></p>
<h2>จัดการสิทธิเพื่อใช้ Deployment</h2>
<p>ขั้นตอนนี้จะให้นำ SSH Key ของ Jenkins ไปทำความรู้จักกับ Bitbucket<br />
ก่อนอื่น ทำการตรวจสอบก่อนเลยว่า user jenkins ใน server เรา เชื่อมต่อ bitbucke.org ได้ไหม ด้วยคำสั่ง</p>
<p>[wc_code]$ sudo -u jenkins ssh -vT git@bitbucket.com[/wc_code]</p>
<p>ให้ดูบรรทัดท้ายๆ ถ้ามันมี username ที่เราใช้บน Bitbucket แปลว่ามันรู้จักกันแล้ว</p>
<p><img fetchpriority="high" decoding="async" class="alignnone size-full wp-image-4073" src="https://myifew.com/wp-content/uploads/2017/06/2560-06-18-13_01_26-root@myifew_-_var_www_test_ci_cd.png" alt="" width="589" height="154" /></p>
<p>แต่ถ้าขึ้นว่า Permission Denied  ให้ทำการ copy public key ไปไว้บน bitbucket ครับ โดยวิธีการดู Jenkins public key คือ</p>
<p>[wc_code]$ sudo vi /var/lib/jenkins/.ssh/id_rsa.pub[/wc_code]</p>
<p>เป็นอันเสร็จเรียบร้อย</p>
<h2>สร้างโฟลเดอร์เว็บไซต์ และไฟล์คำสั่ง Deployment</h2>
<p>ไฟล์เว็บไซต์ผมจะเก็บไว้ที่ /var/www/test_ci_cd และเมื่อมีโฟลเดอร์แล้ว ให้ clone project ลงมาทั้งหมด</p>
<p>[wc_code]$ sudo mkdir /var/www/test_ci_cd[/wc_code]</p>
<p>[wc_code]$ sudo git clone git@bitbucket.org:few/test-project.git .[/wc_code]</p>
<p>ทำการสร้างไฟล์เพื่อใช้ Deployment ซึ่งในที่นี้ผมใช้ชื่อ deploy.php</p>
<p>[wc_code]$ sudo vi /var/www/test_ci_cd/deploy.php[/wc_code]</p>
<p>ในไฟล์มีโค้ดประมาณนี้</p>
<p><img decoding="async" class="alignnone size-full wp-image-4111" src="https://myifew.com/wp-content/uploads/2017/06/2017-06-24-22_49_57-root@myifew_-_var_www_test_ci_cd.png" alt="" width="394" height="119" /></p>
<p>ซึ่งเป็นโค้ดที่ Jenkins จะเอาไว้ใช้งาน โดยมีขั้นตอนคือ</p>
<ol>
<li>เข้าโฟลเดอร์ที่เก็บเว็บไซต์ (หรือเก็บไฟล์ deploy.php)</li>
<li>ทำการล้างไฟล์เก่าออกทั้งหมด (optional)</li>
<li>ดึงไฟล์ล่าสุดที่มีการเปลียนแปลงและผ่านการทำสอบแล้ว ลงมาบน server</li>
</ol>
<p>จากนั้นทำการบันทึก ก็เสร็จแล้ว</p>
<h2>เพิ่ม Config Deployment บน Jenkins</h2>
<p>เข้าไปที่ Project ที่เราใช้ทำงาน จากนั้นเพิ่มในส่วนของ Build จุดเดียวกับที่ตั้งให้ทำ PHPUnit ดังนี้</p>
<p><img decoding="async" class="alignnone size-full wp-image-4075" src="https://myifew.com/wp-content/uploads/2017/06/2560-06-18-13_19_20-Test_CI_CD_Bickbucket-Config-Jenkins.png" alt="" width="862" height="358" srcset="https://myifew.com/wp-content/uploads/2017/06/2560-06-18-13_19_20-Test_CI_CD_Bickbucket-Config-Jenkins.png 862w, https://myifew.com/wp-content/uploads/2017/06/2560-06-18-13_19_20-Test_CI_CD_Bickbucket-Config-Jenkins-600x249.png 600w, https://myifew.com/wp-content/uploads/2017/06/2560-06-18-13_19_20-Test_CI_CD_Bickbucket-Config-Jenkins-768x319.png 768w, https://myifew.com/wp-content/uploads/2017/06/2560-06-18-13_19_20-Test_CI_CD_Bickbucket-Config-Jenkins-700x291.png 700w" sizes="(max-width: 862px) 100vw, 862px" /></p>
<p>ซึ่ง folder path และชื่อไฟล์ ให้เปลี่ยนไปตามที่เราตั้งค่าไว้ด้วยนะ</p>
<h2>ลองทดสอบ Automation Deployment</h2>
<p>ตอนนี้ไฟล์ที่ผมใช้ทดสอบทำงานบวกเลขได้ตามปกติ และไฟล์ test unit ผมก็ยังใช้งานได้ตามปกติ<br />
ผมจะลองเพิ่มข้อความบนไฟล์ calculate.php โดยยังไม่ได้แก้ไขอะไร เพื่อดูว่าระบบไหลไปได้ถูกต้องหรือไม่</p>
<p>[wc_code]echo &#8216;Hi, automate test and deploy (success, all test case)&#8217;;[/wc_code]</p>
<p><img loading="lazy" decoding="async" class="alignnone size-full wp-image-4077" src="https://myifew.com/wp-content/uploads/2017/06/2560-06-18-12_46_59-D__www_test_test_ci_cd_src_calculate.php-Notepad.png" alt="" width="463" height="174" /></p>
<p>จากนั้นให้ Push เข้าสู่ระบบ</p>
<p><img loading="lazy" decoding="async" class="alignnone size-full wp-image-4078" src="https://myifew.com/wp-content/uploads/2017/06/2560-06-18-11_25_25-MINGW64__d_www_test_test_ci_cd.png" alt="" width="509" height="311" /></p>
<p>ลองเปิดดูบน Jenkins จะต้องพบว่ามัน Success</p>
<p><img loading="lazy" decoding="async" class="alignnone size-medium wp-image-4080" src="https://myifew.com/wp-content/uploads/2017/06/2560-06-18-12_47_28-Test_CI_CD_Bickbucket-7560-Console-Jenkins-1024x476.png" alt="" width="1024" height="476" srcset="https://myifew.com/wp-content/uploads/2017/06/2560-06-18-12_47_28-Test_CI_CD_Bickbucket-7560-Console-Jenkins-1024x476.png 1024w, https://myifew.com/wp-content/uploads/2017/06/2560-06-18-12_47_28-Test_CI_CD_Bickbucket-7560-Console-Jenkins-600x279.png 600w, https://myifew.com/wp-content/uploads/2017/06/2560-06-18-12_47_28-Test_CI_CD_Bickbucket-7560-Console-Jenkins-768x357.png 768w, https://myifew.com/wp-content/uploads/2017/06/2560-06-18-12_47_28-Test_CI_CD_Bickbucket-7560-Console-Jenkins-1200x557.png 1200w, https://myifew.com/wp-content/uploads/2017/06/2560-06-18-12_47_28-Test_CI_CD_Bickbucket-7560-Console-Jenkins-700x325.png 700w, https://myifew.com/wp-content/uploads/2017/06/2560-06-18-12_47_28-Test_CI_CD_Bickbucket-7560-Console-Jenkins.png 1492w" sizes="auto, (max-width: 1024px) 100vw, 1024px" /></p>
<p>จากนั้นลองเปิดบนเว็บไซต์ Production ที่เราได้เตรียมไว้ จะต้องแสดงข้อความที่เพิ่มขึ้นมา</p>
<p><img loading="lazy" decoding="async" class="alignnone size-full wp-image-4081" src="https://myifew.com/wp-content/uploads/2017/06/2560-06-18-12_50_17-myifew.com_test_ci_cd_src_calculate.php_.png" alt="" width="399" height="99" /></p>
<p>แปลว่า ระบบ Jenkins ทำการทำการ Automate Test และเมื่อทดสอบ Unit Test ผ่านทั้งหมด ก็ได้ Automate Deploy ให้เราเรียบร้อยแล้ววว</p>
<p>คราวนี้ มาลองทดสอบกรณีที่ Unit Test ทำงานไม่ผ่านบ้าง<br />
โดยผมได้แก้สูตรคิดเลข จาก บวก เป็น หาร ดังนั้น Unit Test ที่ผมทำการทดสอบไว้ทั้งหมดจะผิดทันที เพราะคำตอบมันเป็นผลลัพธ์ของการบวกเท่านั้น<br />
และผมได้ทำการแก้ไขข้อความด้วยว่า จะเกิดการ fail, all test case</p>
<p><img loading="lazy" decoding="async" class="alignnone size-full wp-image-4082" src="https://myifew.com/wp-content/uploads/2017/06/2560-06-18-12_48_04-D__www_test_test_ci_cd_src_calculate.php-Notepad-1.png" alt="" width="484" height="177" /></p>
<p>เช่นเดิม แก้ไขเสร็จ ทำการ git push ขึ้นไปบน Bitbucket</p>
<p><img loading="lazy" decoding="async" class="alignnone size-full wp-image-4083" src="https://myifew.com/wp-content/uploads/2017/06/2560-06-18-12_49_04-μTorrent-3.5-build-43804-32-bit.png" alt="" width="471" height="250" /></p>
<p>จากนั้นเมื่อไปดูบน Jenkins มันจะแสดงข้อความ FAILURES ขึ้นมา เพราะ Unit Test เราไม่ผ่าน</p>
<p><img loading="lazy" decoding="async" class="alignnone size-medium wp-image-4084" src="https://myifew.com/wp-content/uploads/2017/06/Test_CI_CD_Bickbucket-7561-Console-Jenkins--811x1024.png" alt="" width="811" height="1024" srcset="https://myifew.com/wp-content/uploads/2017/06/Test_CI_CD_Bickbucket-7561-Console-Jenkins--811x1024.png 811w, https://myifew.com/wp-content/uploads/2017/06/Test_CI_CD_Bickbucket-7561-Console-Jenkins--600x757.png 600w, https://myifew.com/wp-content/uploads/2017/06/Test_CI_CD_Bickbucket-7561-Console-Jenkins--768x969.png 768w, https://myifew.com/wp-content/uploads/2017/06/Test_CI_CD_Bickbucket-7561-Console-Jenkins--555x700.png 555w, https://myifew.com/wp-content/uploads/2017/06/Test_CI_CD_Bickbucket-7561-Console-Jenkins-.png 943w" sizes="auto, (max-width: 811px) 100vw, 811px" /></p>
<p>ดังนั้น ไฟล์บน Procution ก็จะไม่มีอะไรเปลี่ยนแปลง เพราะเมื่อ Unit Test ไม่ผ่าน มันจะไม่ไปเรียกไฟล์ deployment ทำต่อ</p>
<p><img loading="lazy" decoding="async" class="alignnone size-full wp-image-4081" src="https://myifew.com/wp-content/uploads/2017/06/2560-06-18-12_50_17-myifew.com_test_ci_cd_src_calculate.php_.png" alt="" width="399" height="99" /></p>
<h2>สรุป</h2>
<p>จากที่ได้ลองผิดลองถูกทำมาจนครบ ทำให้เห็นภาพได้ชัดเจนเลยครับว่า Continuous Integration และ Continuous Deployment มันสะดวกและเร็วขึ้นมาก ช่วยส่งเสริมกับเรื่องการส่งมอบงานเป็นรอบและส่งให้ได้ไว เพื่อให้มีการ feedback เร็ว ดังนั้น การเสียเวลาศึกษาและตั้งระบบขึ้นมาอีกสักหน่อย มันจะช่วยงานเราได้ในระยะยาว</p>
<p>แต่อย่างที่ชื่อเรื่องบอกนะครับ นี่เป็นเพียงการเริ่มต้น ดังนั้นขั้นตอนที่เราจะใช้งานจริงๆ อาจจะมีมากกว่านี้ที่ต้องเพิ่มขึ้น ทั้งการเพิ่ม Security, การเพิ่มเรื่องของ Test, การ git push ไปพักไว้ที่ dev branch ก่อน, การ Deploy ไปยัง Stating Server เพื่อทำ Acceptant Test แล้วค่อย merge git เข้าสู่ master branch และ deploy Production &#8230; ผมก็คงเขียนไม่หมด เอาเป็นว่า ไปเผชิญโลกกว้างกันดูครับ</p>
<p style="text-align: center;"><img loading="lazy" decoding="async" class="alignnone size-full wp-image-4089 aligncenter" src="https://myifew.com/wp-content/uploads/2017/06/BestPractices_for_a_MatureContinuousDeliveryPipeline.png" alt="" width="595" height="451" />(รูปจาก http://www.bogotobogo.com/DevOps/DevOps_CI_CD_Pipeline_Sample.php)</p>
<p>ดังนั้น วิธีการของผมก็ไม่ใช่สิ่งที่ดีที่สุด ถ้าหากผิดพลาดประการใด หรือมีคำแนะนำเพิ่มเติม มาแลกเปลี่ยนกันได้ครับ และกราบขอคำชี้แนะด้วยคร้าบบ..</p>
<p>เว็บอ้างอิง</p>
<ul>
<li><a href="http://chrisbeaver.com/2014/10/automatically-deploy-private-git-repo-server/" target="_blank" rel="noopener">Automatically Deploy Private Git Repo to Server</a></li>
<li>รูปปกจาก <a href="http://www.mindtheproduct.com/2016/02/what-the-hell-are-ci-cd-and-devops-a-cheatsheet-for-the-rest-of-us/" target="_blank" rel="noopener">http://www.mindtheproduct.com/2016/02/what-the-hell-are-ci-cd-and-devops-a-cheatsheet-for-the-rest-of-us/</a></li>
</ul>
<p>ซี่รี่ &#8220;เริ่มต้นทำ CI/CD&#8221;</p>
<ul>
<li><a href="https://myifew.com/4027/how-to-setup-jenkins-automation-tools/">เริ่มต้นทำ CI/CD – วิธีติดตั้ง Jenkins บน Ubuntu (1)</a></li>
<li><a href="https://myifew.com/4039/automation-testing-by-phpunit-and-jenkins/">เริ่มต้นทำ CI/CD – Automation Testing ด้วย PHPUnit และ Jenkins (2)</a></li>
<li><a href="https://myifew.com/4072/automation-deploy-git-bitbucket-jenkins/">เริ่มต้นทำ CI/CD – Automation Deploy ด้วย Git (Bitbucket) และ Jenkins (3 &#8211; จบ)</a></li>
</ul>
]]></content:encoded>
					
					<wfw:commentRss>https://myifew.com/4072/automation-deploy-git-bitbucket-jenkins/feed/</wfw:commentRss>
			<slash:comments>0</slash:comments>
		
		
			</item>
		<item>
		<title>เริ่มต้นทำ CI/CD &#8211; Automation Testing ด้วย PHPUnit และ Jenkins (2)</title>
		<link>https://myifew.com/4039/automation-testing-by-phpunit-and-jenkins/</link>
					<comments>https://myifew.com/4039/automation-testing-by-phpunit-and-jenkins/#respond</comments>
		
		<dc:creator><![CDATA[iFew]]></dc:creator>
		<pubDate>Thu, 15 Jun 2017 17:10:35 +0000</pubDate>
				<category><![CDATA[Technology]]></category>
		<category><![CDATA[Automation Testing]]></category>
		<category><![CDATA[Automation Tools]]></category>
		<category><![CDATA[Continuous Delivery]]></category>
		<category><![CDATA[Continuous Deployment]]></category>
		<category><![CDATA[Continuous Integration]]></category>
		<category><![CDATA[Jenkins]]></category>
		<category><![CDATA[PHPUnit]]></category>
		<guid isPermaLink="false">https://myifew.com/?p=4039</guid>

					<description><![CDATA[Software ที่ใช้ได้และส่งมอบงานได้ไว ก็ต้องมี Automate Test ที่ทำงานได้แทนเรา และครอบคลุม หนึ่งในนั้นคือ Unit Test]]></description>
										<content:encoded><![CDATA[<p>บล็อกที่แล้วเขียนเรื่อง <a href="https://myifew.com/4027/how-to-setup-jenkins-automation-tools/">วิธีติดตั้ง Jenkin</a> ไว้ เพื่อเตรียมทำ CI (Continuous Integration)<br />
แต่ก่อนจะไปถึงตรงนั้น นอกจากต้องใช้ Version Control เป็นแล้ว ก็ต้องมีวิธีการทดสอบโค้ดที่เขียนก่อน</p>
<p>และคุณประโยชน์ที่เราจะไปใช้ Scrum เพื่อทำ Agile คือ การส่งมอบงาน หรือ Software ที่ใช้ได้ ให้ได้ไวๆ<br />
ดังนั้น การส่งมอบให้ได้ไว คือการทำงานเป็นรอบ และการทำงานเป็นรอบ เราจะได้ผลตอบรับไว (fast feedback) ว่าใช่หรือไม่ใช่ ผิดหรือถูก</p>
<p>เช่นกัน Software ที่ใช้ได้และส่งมอบงานได้ไว ก็ต้องมี Automate Test ที่ทำงานได้แทนเรา และครอบคลุม หนึ่งในนั้นคือ Unit Test<span id="more-4039"></span></p>
<p><img loading="lazy" decoding="async" class="alignnone size-full wp-image-4050" src="https://myifew.com/wp-content/uploads/2017/06/AgileTestingPyramid2.jpg" alt="" width="953" height="580" srcset="https://myifew.com/wp-content/uploads/2017/06/AgileTestingPyramid2.jpg 953w, https://myifew.com/wp-content/uploads/2017/06/AgileTestingPyramid2-600x365.jpg 600w, https://myifew.com/wp-content/uploads/2017/06/AgileTestingPyramid2-768x467.jpg 768w, https://myifew.com/wp-content/uploads/2017/06/AgileTestingPyramid2-700x426.jpg 700w" sizes="auto, (max-width: 953px) 100vw, 953px" /></p>
<p>ว่าแล้วก็ลองมาดูกัน</p>
<h2>ติดตั้ง PHPUnit บน Ubuntu</h2>
<p>ใช้คำสั่งเดียว ดังนี้</p>
<p>[wc_code]$ sudo apt-get install phpunit[/wc_code]</p>
<p>ทดสอบด้วยคำสั่ง</p>
<p>[wc_code]$ phpunit &#8211;version[/wc_code]</p>
<p>จะแสดงข้อความ ประมาณ [wc_code]PHPUnit 3.7.21 by Sebastian Bergmann.[/wc_code] ก็พร้อมใช้แล้วครับ</p>
<h2>ติดตั้ง PHPUnit บน Windows</h2>
<p>ซับซ้อนนิด ลองทำตามดู</p>
<ol>
<li>.ไป Download PHPUnit ที่ https://phpunit.de/</li>
<li>จะได้ไฟล์ชื่อประมาณว่า phpunit-6.2.1.phar ให้เอามันไปไว้ที่ไหนโฟลเดอร์ไหนสักแห่ง ในที่นี้ผมไว้ที่ C:\bin</li>
<li>จากนั้นเข้าไปที่ windows command ด้วยการกด ปุ่มรูป windows ที่ keyboard + R</li>
<li>พิมพ์คำสั่ง<br />
[wc_code]cd C:\bin<br />
echo @php &#8220;%~dp0phpunit-6.2.1.phar&#8221; %* &gt; phpunit.cmd[/wc_code]</li>
<li>ถ้าสังเกตในโฟลเดอร์ของเรา จะพบไฟล์ชื่อ phpunit.cmd ขึ้นมาไฟล์หนึ่ง<br />
<img loading="lazy" decoding="async" class="alignnone size-full wp-image-4042" src="https://myifew.com/wp-content/uploads/2017/06/2560-06-10-18_12_12-bin.png" alt="" width="751" height="133" srcset="https://myifew.com/wp-content/uploads/2017/06/2560-06-10-18_12_12-bin.png 751w, https://myifew.com/wp-content/uploads/2017/06/2560-06-10-18_12_12-bin-600x106.png 600w, https://myifew.com/wp-content/uploads/2017/06/2560-06-10-18_12_12-bin-700x124.png 700w" sizes="auto, (max-width: 751px) 100vw, 751px" /></li>
<li>จากนั้นไปตั้งค่า Environment Variables และใส่ Path เป็นที่อยู่โฟลเดอร์ที่เราเก็บไฟล์ไว้ นั่นก็คือ C:\bin<br />
<img loading="lazy" decoding="async" class="alignnone size-medium wp-image-4041" src="https://myifew.com/wp-content/uploads/2017/06/2560-06-10-18_08_59-bin-1024x659.png" alt="" width="1024" height="659" srcset="https://myifew.com/wp-content/uploads/2017/06/2560-06-10-18_08_59-bin-1024x659.png 1024w, https://myifew.com/wp-content/uploads/2017/06/2560-06-10-18_08_59-bin-600x386.png 600w, https://myifew.com/wp-content/uploads/2017/06/2560-06-10-18_08_59-bin-768x495.png 768w, https://myifew.com/wp-content/uploads/2017/06/2560-06-10-18_08_59-bin-700x451.png 700w, https://myifew.com/wp-content/uploads/2017/06/2560-06-10-18_08_59-bin.png 1129w" sizes="auto, (max-width: 1024px) 100vw, 1024px" /></li>
<li>คราวนี้เราจะสามารถใช้งาน phpunit ที่โฟลเดอร์อื่นๆ นอกเหนือจาก C:\bin ได้แล้ว<br />
<img loading="lazy" decoding="async" class="alignnone size-full wp-image-4040" src="https://myifew.com/wp-content/uploads/2017/06/2560-06-10-18_10_34-bin.png" alt="" width="981" height="514" srcset="https://myifew.com/wp-content/uploads/2017/06/2560-06-10-18_10_34-bin.png 981w, https://myifew.com/wp-content/uploads/2017/06/2560-06-10-18_10_34-bin-600x314.png 600w, https://myifew.com/wp-content/uploads/2017/06/2560-06-10-18_10_34-bin-768x402.png 768w, https://myifew.com/wp-content/uploads/2017/06/2560-06-10-18_10_34-bin-700x367.png 700w" sizes="auto, (max-width: 981px) 100vw, 981px" /></li>
</ol>
<h2>เริ่มต้นลองเขียน PHPUnit แบบง่ายๆ</h2>
<p>สมมติว่าผมสร้างไฟล์ชื่อ Calculate.php ในนั้นมี Class ชื่อ Calculate และมี Function บวกเลขขึ้นมาตัวหนึ่ง</p>
<p><img loading="lazy" decoding="async" class="alignnone size-full wp-image-4047" src="https://myifew.com/wp-content/uploads/2017/06/2560-06-15-22_04_44-D__www_test_test_ci_cd_src_calculate.php-Notepad.png" alt="" width="595" height="152" /></p>
<p>ผมต้องสร้างไฟล์ทดสอบขึ้นมาประกบ Function นี้ โดยผมตั้งชื่อว่า test_calculate.php และมีโค้ด ดังนี้</p>
<p><img loading="lazy" decoding="async" class="alignnone size-full wp-image-4061" src="https://myifew.com/wp-content/uploads/2017/06/2560-06-15-22_07_46-D__www_test_test_ci_cd_test_test_calculate.php-Notepad-1.png" alt="" width="823" height="504" srcset="https://myifew.com/wp-content/uploads/2017/06/2560-06-15-22_07_46-D__www_test_test_ci_cd_test_test_calculate.php-Notepad-1.png 823w, https://myifew.com/wp-content/uploads/2017/06/2560-06-15-22_07_46-D__www_test_test_ci_cd_test_test_calculate.php-Notepad-1-600x367.png 600w, https://myifew.com/wp-content/uploads/2017/06/2560-06-15-22_07_46-D__www_test_test_ci_cd_test_test_calculate.php-Notepad-1-768x470.png 768w, https://myifew.com/wp-content/uploads/2017/06/2560-06-15-22_07_46-D__www_test_test_ci_cd_test_test_calculate.php-Notepad-1-700x429.png 700w" sizes="auto, (max-width: 823px) 100vw, 823px" /></p>
<p>ไฟล์ นี้ผมจะ include ไฟล์ที่จะทำการทดสอบมาด้วย นั่นคือ Calculate.php<br />
จากนั้นผมจะ extends เรียกใช้ตัว PHPUnit_Framework_TestCase เพื่อเรียกใช้งานคำสั่งต่างๆของ PHPUnit</p>
<p>class Test_calculate extends PHPUnit_Framework_TestCase</p>
<p>เรียกใช้ function setup() ซึ่งมันจะทำคำสั่งทั้งหมดในนี้ทุกครั้งที่มีการทดสอบ function อื่นๆ เสมอ</p>
<p>public function setup() {<br />
$this-&gt;calculate = new Calculate();<br />
}</p>
<p>สร้าง function ทดสอบการบวกเลขขึ้นมา โดยการตั้งชื่อของ PHPUnit จะต้องขึ้นต้นด้วย test เสมอ<br />
และผทใช้คำสั่ง assertEquals() เพื่อตรวจสอบว่า ผลลัพธ์ที่ได้จาก $this-&gt;calculate-&gt;add($a, $b) เท่ากับ $expected หรือไม่<br />
โดยตัวแปล $a, $b, $expected ผมให้เรียกใช้มาจากชุดตัวเลขทดสอบ ที่เก็บไว้ใน function additionProvider()<br />
โดยวิธีการเรียกใช้นั้น คือคำสั่ง @dataProvider ที่อยู่ในกรอบคอมเม้น<br />
/**<br />
* @dataProvider additionProvider<br />
*/<br />
public function testAdd($a, $b, $expected) {<br />
$this-&gt;assertEquals($expected, $this-&gt;calculate-&gt;add($a, $b));<br />
}</p>
<p>public function additionProvider()<br />
{<br />
return [<br />
&#8216;0+0=0&#8217; =&gt; [0, 0, 0],<br />
&#8216;0+1=1&#8217; =&gt; [0, 1, 1],<br />
&#8216;1+0=0&#8217; =&gt; [1, 0, 0],<br />
&#8216;1+4=3&#8217; =&gt; [1, 4, 3]<br />
];<br />
}</p>
<p>จากนั้นทำการรันคำสั่ง</p>
<p>[wc_code]$ phpunit test_calculate.php[/wc_code]</p>
<p>ผลที่ได้จะเป็นดังรูปนี้</p>
<p><img loading="lazy" decoding="async" class="alignnone size-full wp-image-4063" src="https://myifew.com/wp-content/uploads/2017/06/2560-06-15-22_08_20.png" alt="" width="827" height="447" srcset="https://myifew.com/wp-content/uploads/2017/06/2560-06-15-22_08_20.png 827w, https://myifew.com/wp-content/uploads/2017/06/2560-06-15-22_08_20-600x324.png 600w, https://myifew.com/wp-content/uploads/2017/06/2560-06-15-22_08_20-768x415.png 768w, https://myifew.com/wp-content/uploads/2017/06/2560-06-15-22_08_20-700x378.png 700w" sizes="auto, (max-width: 827px) 100vw, 827px" /></p>
<p>ความหมายคือ ผลการทดสอบ ไม่ผ่าน<br />
โดยทดสอบด้วย 4 ชุดข้อมูล ไม่ผ่าน 2 ชุดข้อมูล</p>
<h2>ให้ Jenkins ทดสอบ PHPUnit อัตโนมัติ ทุกครั้งที่มีการ Push สู่ Git</h2>
<p>กลับไปที่ Jenkins Project ที่สร้างไว้จากบล็อก <a href="https://myifew.com/4027/how-to-setup-jenkins-automation-tools/">สอนติดตั้ง Jenkins</a><br />
ในส่วนของ Build ให้กดปุ่ม Add build step เพื่อเพิ่มการทำงานในตอน build<br />
จากนั้นเลือกเมนู Excute shell และใส่โค้ดไปว่า</p>
<p>[wc_code]phpunit &#8211;log-junit test/results/phpunit.xml test/test_calculate.php[/wc_code]</p>
<p>ส่วนของ test/results/phpunit.xml จะเป็น path ที่เก็บไฟล์ report, ส่วน test/test_calculate.php คือไฟล์ที่ใช้ทดสอบ<br />
ดังนั้นใครไฟล์ทดสอบไว้อย่างไร ก็แก้กันตามนั้นส่วนไฟล์ report ก็แล้วแต่จะตั้งนะ</p>
<p>ต่อมา ในส่วนของ Post-build Actions ให้กดปุ่ม Add post-build action เพื่อเพิ่มการทำงานหลัง build เสร็จ<br />
จากนั้นเลือกเมนู Publish JUnit test result report และใส่ที่อยู่ของ report เมื่อสักครู่เข้าไป</p>
<p>[wc_code]test/results/phpunit.xml[/wc_code]</p>
<p>(มันจะแจ้งตัวอักษรแดงๆ ว่าไม่พบไฟล์ก็ปล่อยมันไป)</p>
<p><img loading="lazy" decoding="async" class="alignnone size-medium wp-image-4052" src="https://myifew.com/wp-content/uploads/2017/06/2560-06-15-23_52_30-Test_CI_CD_Bickbucket-Config-Jenkins-1024x595.png" alt="" width="1024" height="595" srcset="https://myifew.com/wp-content/uploads/2017/06/2560-06-15-23_52_30-Test_CI_CD_Bickbucket-Config-Jenkins-1024x595.png 1024w, https://myifew.com/wp-content/uploads/2017/06/2560-06-15-23_52_30-Test_CI_CD_Bickbucket-Config-Jenkins-600x349.png 600w, https://myifew.com/wp-content/uploads/2017/06/2560-06-15-23_52_30-Test_CI_CD_Bickbucket-Config-Jenkins-768x446.png 768w, https://myifew.com/wp-content/uploads/2017/06/2560-06-15-23_52_30-Test_CI_CD_Bickbucket-Config-Jenkins-1200x697.png 1200w, https://myifew.com/wp-content/uploads/2017/06/2560-06-15-23_52_30-Test_CI_CD_Bickbucket-Config-Jenkins-700x407.png 700w, https://myifew.com/wp-content/uploads/2017/06/2560-06-15-23_52_30-Test_CI_CD_Bickbucket-Config-Jenkins.png 1463w" sizes="auto, (max-width: 1024px) 100vw, 1024px" /></p>
<p>หลังจากนั้นให้ลองกดปุ่ม Build ดู และให้กดไปที่รายการที่ Build ครั้งล่าสุด</p>
<p><img loading="lazy" decoding="async" class="alignnone size-full wp-image-4053" src="https://myifew.com/wp-content/uploads/2017/06/2560-06-15-23_59_40-Test_CI_CD_Bickbucket-Jenkins.png" alt="" width="355" height="204" /></p>
<p>ให้เลือกเมนู Test Result ก็จะพบผลการทดสอบที่แยก Function การทำงานพร้อม Progress Bar บอกผลด้วยว่า ผ่าน/ไม่ผ่าน กี่ Function</p>
<p><img loading="lazy" decoding="async" class="alignnone size-medium wp-image-4054" src="https://myifew.com/wp-content/uploads/2017/06/2560-06-16-00_00_29-Test_CI_CD_Bickbucket-7528-Test-Results-Jenkins-1024x414.png" alt="" width="1024" height="414" srcset="https://myifew.com/wp-content/uploads/2017/06/2560-06-16-00_00_29-Test_CI_CD_Bickbucket-7528-Test-Results-Jenkins-1024x414.png 1024w, https://myifew.com/wp-content/uploads/2017/06/2560-06-16-00_00_29-Test_CI_CD_Bickbucket-7528-Test-Results-Jenkins-600x242.png 600w, https://myifew.com/wp-content/uploads/2017/06/2560-06-16-00_00_29-Test_CI_CD_Bickbucket-7528-Test-Results-Jenkins-768x310.png 768w, https://myifew.com/wp-content/uploads/2017/06/2560-06-16-00_00_29-Test_CI_CD_Bickbucket-7528-Test-Results-Jenkins-1200x485.png 1200w, https://myifew.com/wp-content/uploads/2017/06/2560-06-16-00_00_29-Test_CI_CD_Bickbucket-7528-Test-Results-Jenkins-700x283.png 700w, https://myifew.com/wp-content/uploads/2017/06/2560-06-16-00_00_29-Test_CI_CD_Bickbucket-7528-Test-Results-Jenkins.png 1361w" sizes="auto, (max-width: 1024px) 100vw, 1024px" /></p>
<p>ในหน้าของ History ก็จะบอกประวัติของการพบข้อผิดพลาดว่ามากขึ้นหรือลดลง</p>
<p><img loading="lazy" decoding="async" class="alignnone size-medium wp-image-4055" src="https://myifew.com/wp-content/uploads/2017/06/2560-06-16-00_01_52-History-for-Test-Results-Jenkins-1024x453.png" alt="" width="1024" height="453" srcset="https://myifew.com/wp-content/uploads/2017/06/2560-06-16-00_01_52-History-for-Test-Results-Jenkins-1024x453.png 1024w, https://myifew.com/wp-content/uploads/2017/06/2560-06-16-00_01_52-History-for-Test-Results-Jenkins-600x265.png 600w, https://myifew.com/wp-content/uploads/2017/06/2560-06-16-00_01_52-History-for-Test-Results-Jenkins-768x340.png 768w, https://myifew.com/wp-content/uploads/2017/06/2560-06-16-00_01_52-History-for-Test-Results-Jenkins-1200x531.png 1200w, https://myifew.com/wp-content/uploads/2017/06/2560-06-16-00_01_52-History-for-Test-Results-Jenkins-700x310.png 700w, https://myifew.com/wp-content/uploads/2017/06/2560-06-16-00_01_52-History-for-Test-Results-Jenkins.png 1347w" sizes="auto, (max-width: 1024px) 100vw, 1024px" /></p>
<p>เมื่อไปดูหน้าของ Project ก็จะมี Trend การพบข้อผิดพลาด</p>
<p><img loading="lazy" decoding="async" class="alignnone size-medium wp-image-4056" src="https://myifew.com/wp-content/uploads/2017/06/2560-06-16-00_03_01-Test_CI_CD_Bickbucket-Jenkins-1024x440.png" alt="" width="1024" height="440" srcset="https://myifew.com/wp-content/uploads/2017/06/2560-06-16-00_03_01-Test_CI_CD_Bickbucket-Jenkins-1024x440.png 1024w, https://myifew.com/wp-content/uploads/2017/06/2560-06-16-00_03_01-Test_CI_CD_Bickbucket-Jenkins-600x258.png 600w, https://myifew.com/wp-content/uploads/2017/06/2560-06-16-00_03_01-Test_CI_CD_Bickbucket-Jenkins-768x330.png 768w, https://myifew.com/wp-content/uploads/2017/06/2560-06-16-00_03_01-Test_CI_CD_Bickbucket-Jenkins-1200x516.png 1200w, https://myifew.com/wp-content/uploads/2017/06/2560-06-16-00_03_01-Test_CI_CD_Bickbucket-Jenkins-700x301.png 700w, https://myifew.com/wp-content/uploads/2017/06/2560-06-16-00_03_01-Test_CI_CD_Bickbucket-Jenkins.png 1347w" sizes="auto, (max-width: 1024px) 100vw, 1024px" /></p>
<h2>สรุป</h2>
<p>หลังจากไดทำ Unit Test และไปให้ Jenkins เป็นตัวรันทดสอบให้อัตโนมัติทุกครั้งที่ Commit Code คราวนี้เราก็สบายใจได้แล้วว่า ทุกครั้งที่ทำงานและนำโค้ดขึ้น Git เราจะมีโค้ดที่สามารถทำงานได้ เราได้เริ่มต้นเข้าสู่ Continuous Integration ด้วย Unit Test แล้ววว</p>
<p>ในบล็อกตอนหน้า ผมจะนำโค้ดที่ใช้งานได้บน Git เข้าสู่ Production Server เพื่อลองทำ Continuous Deployment กันครับ</p>
<p>&nbsp;</p>
<p>เว็บอ้างอิง</p>
<ul>
<li><a href="http://www.somkiat.cc/php-continuous-integration-with-jenkins/" target="_blank" rel="noopener noreferrer">สรุปการใช้งาน Jenkins ร่วมกับ PHP project แบบง่ายๆ</a></li>
<li><a href="http://www.somkiat.cc/imrpove-quality-with-continuous-integration/" target="_blank" rel="noopener noreferrer">ปรับปรุงคุณภาพของ Software ด้วย Continuous Integration Process กันนะ</a></li>
<li>รูปปกจาก https://buddy.works/blog/introducing-phpunit</li>
</ul>
<p>ซี่รี่ &#8220;เริ่มต้นทำ CI/CD&#8221;</p>
<ul>
<li><a href="https://myifew.com/4027/how-to-setup-jenkins-automation-tools/">เริ่มต้นทำ CI/CD – วิธีติดตั้ง Jenkins บน Ubuntu (1)</a></li>
<li><a href="https://myifew.com/4039/automation-testing-by-phpunit-and-jenkins/">เริ่มต้นทำ CI/CD – Automation Testing ด้วย PHPUnit และ Jenkins (2)</a></li>
<li><a href="https://myifew.com/4072/automation-deploy-git-bitbucket-jenkins/">เริ่มต้นทำ CI/CD – Automation Deploy ด้วย Git (Bitbucket) และ Jenkins (3 &#8211; จบ)</a></li>
</ul>
]]></content:encoded>
					
					<wfw:commentRss>https://myifew.com/4039/automation-testing-by-phpunit-and-jenkins/feed/</wfw:commentRss>
			<slash:comments>0</slash:comments>
		
		
			</item>
		<item>
		<title>เริ่มต้นทำ CI/CD &#8211; วิธีติดตั้ง Jenkins บน Ubuntu (1)</title>
		<link>https://myifew.com/4027/how-to-setup-jenkins-automation-tools/</link>
					<comments>https://myifew.com/4027/how-to-setup-jenkins-automation-tools/#respond</comments>
		
		<dc:creator><![CDATA[iFew]]></dc:creator>
		<pubDate>Sat, 10 Jun 2017 04:44:50 +0000</pubDate>
				<category><![CDATA[Technology]]></category>
		<category><![CDATA[Automation Tools]]></category>
		<category><![CDATA[Continuous Delivery]]></category>
		<category><![CDATA[Continuous Deployment]]></category>
		<category><![CDATA[Continuous Integration]]></category>
		<category><![CDATA[Jenkins]]></category>
		<guid isPermaLink="false">https://myifew.com/?p=4027</guid>

					<description><![CDATA[Jenkins เป็น Automation Tools ที่เอาไว้ทำอะไรต่างๆแบบอัตโนมัติ ในที่นี้เราจะเอามันไปใช้ทำ CI/CD เพื่อช่วยชีวิตนักพัฒนาอย่างเราให้สบายขึ้น]]></description>
										<content:encoded><![CDATA[<p>ตอนแรกว่าจะเขียนรวดเดียวจบถึงวิธีทำ CI/CD (Continuous Integration and Continuous Deployment) ด้วย Jenkins และ Bitbucket แต่พอเขียน Jenkins จบ รู้สึกว่ายาวไปหน่อย เลยขอตัดเอาเป็น Jenkins ก่อนก็แล้วกันนะ</p>
<p>Jenkins เป็น Automation Tools ที่เอาไว้ทำอะไรต่างๆแบบอัตโนมัติ ซึ่งในที่นี้เราเอามันไปใช้ทำ CI/CD เพื่อช่วยชีวิตนักพัฒนาอย่างเราให้สบายขึ้น อบย่างเช่น นักพัฒนาเพียงแค่เขียนโค้ด นำขึ้น Git แล้วให้ Jenkins ทำการทดสอบจากที่เราตั้งค่าไว้ ไม่ว่าจะ Robot Framework หรือ Test Unit ก็ตาม เมื่อผ่านเรียบร้อย ก็นำกลับไป Merge Code เข้า Git หรือจะ Deploy ต่อไปยัง Server ก็ว่ากันไป (ซึ่งผมจะเขียนบล็อกสอนทำตามนี้แหละ)<span id="more-4027"></span></p>
<p>เนื่องด้วยผมใช้ Linux Ubuntu นะครับ ใครใช้ Linux/Windows อื่นๆ ก็ลองปรับๆเทียบเคียงดูอีกที</p>
<h2>สิ่งที่ต้องมี</h2>
<p>Server ที่ใช้ Ubuntu มี Ram ขั้นต่ำ 1GB จากนั้นให้สร้าง user ที่สามารถใช้งาน sudo ได้และใช้ File Key Authentication ในการเข้าสู่ระบบ (<a href="https://www.digitalocean.com/community/tutorials/initial-server-setup-with-ubuntu-16-04" target="_blank" rel="noopener noreferrer">วิธีการสร้าง user + file key authentication + disable root user + disable password authentication</a>)</p>
<h2>ติดตั้ง Jenkins</h2>
<p>เพิ่ม repository key ใน server</p>
<p>[wc_code]$ wget -q -O &#8211; https://pkg.jenkins.io/debian/jenkins-ci.org.key | sudo apt-key add -[/wc_code]</p>
<p>พิมพ์ไปแล้วจะแสดงคำว่า [wc_code]OK[/wc_code] เป็นใช้ได้ จากนั้น กำหนด Debian package repo address</p>
<p>[wc_code]$ echo deb http://pkg.jenkins.io/debian-stable binary/ | sudo tee /etc/apt/sources.list.d/jenkins.list[/wc_code]</p>
<p>ทำการ update package สักหน่อย</p>
<p>[wc_code]$ sudo apt-get update[/wc_code]</p>
<p>สุดท้ายก็พิมพ์คำสั่งติดตั้ง Jenkins</p>
<p>[wc_code]$ sudo apt-get install jenkins[/wc_code]</p>
<p>จากนั้นให้ทำการ เปิดใช้ Jenkins</p>
<p>[wc_code]$ sudo service jenkins start[/wc_code]</p>
<p>แล้วลองเช็คดูว่า Jenkins ทำงานจริงหรือไม่</p>
<p>[wc_code]$ sudo service jenkins status[/wc_code]</p>
<p>ถ้า Jenkins ทำงานอยู่ ผลลัพธ์ที่ได้จะแสดงประมาณนี้</p>
<p>[wc_code]Jenkins Automation Server is running with the pid 12445[/wc_code] (เลขข้างหลังอะไรก็ว่าไป อาจไม่เหมือนกัน)</p>
<h2>เปลี่ยนเลข Port Jenkins สักหน่อย</h2>
<p>(ถ้าใครไม่ทำตรงนี้ ก็ข้ามไปได้ครับ ใช้ Port 8080 ดังเดิม)</p>
<p>ปกติ Jenkins จะใช้ Port 8080 ซึ่งผมคิดว่าเกร่อไปนิด เลยอยากเปลี่ยนเป็นเลขอื่นๆแทน โดยทำดังนี้</p>
<p>แก้ไข file ชื่อ /etc/default/jenkins</p>
<p>[wc_code]$ sudo vi /etc/default/jenkins[/wc_code]</p>
<p>แก้เลข port บนหาบรรทัดที่เขียนว่า HTTP_PORT</p>
<p>[wc_code]HTTP_PORT=8083[/wc_code]</p>
<p>จากนั้น save แล้วออกมา restart Jenkins อีกรอบ</p>
<p>[wc_code]$ sudo service jenkins restart[/wc_code]</p>
<h2>ตั้งค่าใช้งาน Jenkins</h2>
<p>เมื่อติดตั้งและเปลี่ยน port เรียบร้อย คราวนี้มาตั้งค่ากัน โดยเข้าไปที่ URL เว็บของเราหรือ IP แล้วตามด้วยเลข Port ที่เรากำหนดเมื่อสักครู่</p>
<p>[wc_code]http://ip_address_or_domain_name:8083[/wc_code]</p>
<p>การเข้าใช้งานครั้งแรก จะขึ้นหน้าตาแบบนี้ครับ</p>
<p><img loading="lazy" decoding="async" class="alignnone size-medium wp-image-4030" src="https://myifew.com/wp-content/uploads/2017/06/unlock-jenkins-1024x531.png" alt="" width="1024" height="531" srcset="https://myifew.com/wp-content/uploads/2017/06/unlock-jenkins-1024x531.png 1024w, https://myifew.com/wp-content/uploads/2017/06/unlock-jenkins-600x311.png 600w, https://myifew.com/wp-content/uploads/2017/06/unlock-jenkins-768x399.png 768w, https://myifew.com/wp-content/uploads/2017/06/unlock-jenkins-700x363.png 700w, https://myifew.com/wp-content/uploads/2017/06/unlock-jenkins.png 1137w" sizes="auto, (max-width: 1024px) 100vw, 1024px" /></p>
<p>ซึ่งมันให้เราเอารหัสเปิดใช้งานครั้งแรกมากรอก โดยพิมพ์คำสั่งดูข้อมูลจาก /var/lib/jenkins/secrets/initialAdminPassword</p>
<p>[wc_code]$ sudo cat /var/lib/jenkins/secrets/initialAdminPassword[/wc_code]</p>
<p>เราจะได้ตัวอักษรผสมตัวเลข 32 หลัก ซึ่งอันนี้แหละ เป็นรหัสที่ใช้กรอก</p>
<p>เมื่อกดไปขั้นต่อไป ให้เลือก Install suggested plugins เป็นค่าเริ่มต้นไปก่อน</p>
<p><img loading="lazy" decoding="async" class="alignnone size-medium wp-image-4032" src="https://myifew.com/wp-content/uploads/2017/06/jenkins-customize-1024x531.png" alt="" width="1024" height="531" srcset="https://myifew.com/wp-content/uploads/2017/06/jenkins-customize-1024x531.png 1024w, https://myifew.com/wp-content/uploads/2017/06/jenkins-customize-600x311.png 600w, https://myifew.com/wp-content/uploads/2017/06/jenkins-customize-768x399.png 768w, https://myifew.com/wp-content/uploads/2017/06/jenkins-customize-700x363.png 700w, https://myifew.com/wp-content/uploads/2017/06/jenkins-customize.png 1137w" sizes="auto, (max-width: 1024px) 100vw, 1024px" /></p>
<p>แล้วมันจะทำการติดตั้งอะไรก็ว่าไป จนไปถึงหน้ากรอกข้อมูล Admin User ก็ตั้งได้จตามสะดวกที่ต้องการ เป็นอันเสร็จพิธี และเมื่อกดปุ่ม Start using Jenkins จะเจอหน้าแรกประมาณนี้ (Test Project กับ Test CI CD (Bitbucket) ไม่ต้องไปสนใจมันนะฮะ พอดีผมลืมแคปเจอร์หน้าตอนที่ยังไม่มี Project ขึ้น แหะๆ)</p>
<p><img loading="lazy" decoding="async" class="alignnone size-medium wp-image-4034" src="https://myifew.com/wp-content/uploads/2017/06/2560-06-10-11_21_03-Dashboard-Jenkins-1024x545.png" alt="" width="1024" height="545" srcset="https://myifew.com/wp-content/uploads/2017/06/2560-06-10-11_21_03-Dashboard-Jenkins-1024x545.png 1024w, https://myifew.com/wp-content/uploads/2017/06/2560-06-10-11_21_03-Dashboard-Jenkins-600x319.png 600w, https://myifew.com/wp-content/uploads/2017/06/2560-06-10-11_21_03-Dashboard-Jenkins-768x409.png 768w, https://myifew.com/wp-content/uploads/2017/06/2560-06-10-11_21_03-Dashboard-Jenkins-1200x639.png 1200w, https://myifew.com/wp-content/uploads/2017/06/2560-06-10-11_21_03-Dashboard-Jenkins-700x372.png 700w, https://myifew.com/wp-content/uploads/2017/06/2560-06-10-11_21_03-Dashboard-Jenkins.png 1915w" sizes="auto, (max-width: 1024px) 100vw, 1024px" /></p>
<p>&nbsp;</p>
<p>เว็บอ้างอิง</p>
<ul>
<li><a href="https://www.digitalocean.com/community/tutorials/initial-server-setup-with-ubuntu-16-04" target="_blank" rel="noopener noreferrer">Initial Server Setup with Ubuntu 16.04</a></li>
<li><a href="https://www.digitalocean.com/community/tutorials/how-to-install-jenkins-on-ubuntu-16-04" target="_blank" rel="noopener noreferrer">How To Install Jenkins on Ubuntu 16.04</a></li>
<li><a href="https://stackoverflow.com/questions/15265277/how-to-start-jenkins-on-different-port-rather-than-8080-using-command-prompt-in" target="_blank" rel="noopener noreferrer">How to start Jenkins on different port rather than 8080 using command prompt in Windows?</a></li>
<li>รูปปกจาก http://www.drdobbs.com/testing/soasta-and-cloudbees-team-for-jenkins-pl/240152753</li>
</ul>
<p>ซี่รี่ &#8220;เริ่มต้นทำ CI/CD&#8221;</p>
<ul>
<li><a href="https://myifew.com/4027/how-to-setup-jenkins-automation-tools/">เริ่มต้นทำ CI/CD – วิธีติดตั้ง Jenkins บน Ubuntu (1)</a></li>
<li><a href="https://myifew.com/4039/automation-testing-by-phpunit-and-jenkins/">เริ่มต้นทำ CI/CD – Automation Testing ด้วย PHPUnit และ Jenkins (2)</a></li>
<li><a href="https://myifew.com/4072/automation-deploy-git-bitbucket-jenkins/">เริ่มต้นทำ CI/CD – Automation Deploy ด้วย Git (Bitbucket) และ Jenkins (3 &#8211; จบ)</a></li>
</ul>
]]></content:encoded>
					
					<wfw:commentRss>https://myifew.com/4027/how-to-setup-jenkins-automation-tools/feed/</wfw:commentRss>
			<slash:comments>0</slash:comments>
		
		
			</item>
	</channel>
</rss>
