Diese Präsentation wurde erfolgreich gemeldet.
Wir verwenden Ihre LinkedIn Profilangaben und Informationen zu Ihren Aktivitäten, um Anzeigen zu personalisieren und Ihnen relevantere Inhalte anzuzeigen. Sie können Ihre Anzeigeneinstellungen jederzeit ändern.
Jenkins CI
What is it?
ก่อนแรกมาทาความรู้จักกับ CI ก่อนนะครับ
 CI (Continuous Integration) คือแนวคิด ทัศนะคติ รวมไป
ถึงวัฒนธรรมของทีมและองค์กร
...
จากข้อตกลงข้างต้นนั้น
เราจะทาให้มันเกิดขึ้นได้อย่างไรล่ะ?
1. ก่อนที่จะทาการ Check-in code ของคุณไปยัง repository นั้น
จะต้...
แล้วเราจะลดขั้นตอนการทางานได้อย่างไรล่ะ?
 คาถามนี้แหละ เป็นเหตุผลที่ต้องให้ทีมเริ่มมองหาเครื่องมือมาช่วยทาในข้อ 4 เพื่อ
ร...
กับมาที่ Jenkins มันคืออะไร?
 Jenkins ก็คือ open source continuous integration
tools เขียนโดย java และยัง support พวก sou...
สรุปแล้ว Jenkins CI ช่วยงานเรายังไง
ในระบบการพัฒนา sotware ต่าง ๆ หลัก ๆ แล้วจะไม่พ้นในระบบการพัฒนาที่เป็น
Design -> Dev -...
แก้ยังไง?
จะดีไหมถ้า Tester ไม่ต้องมาทาซ้า ๆ Dev ไม่ต้องคอยบอก Tester ว่าเสร็จ
แล้วนะมาเทสด้วย แต่ให้มัน Test โดยอัตโนมัตห...
วิธีติดตั้ง Jenkins (สาหรับ windows)
 ไปที่ Native packages ด้านขวามือ
 เลือก Windows เพื่อ Download
 Download ได้จาก h...
 File ที่ได้จากการ download เป็น .rar
 ทาการแตก file .rar ออกมา จะได้ออกมาเป็นแบบนี้
 เลือก setup เพื่อทาการติดตั้ง
 หน้าตาของ File setup ให้ทาการติดตั้งจนเสร็จ
หน้าตาของ Jenkins
 สามารถ เข้าใช้งาน Jenkins ผ่านทาง
web browser ได้
 ด้วย url: http://localhost:8080/
1
2
1
คือส่วนของเ...
สิ่งที่ต้องรู้เกี่ยวกับ การเชื่อมต่อ Jenkins กับ
Programs ต่างๆ
1. เราควรจะโหลดโปรแกรมเกียวกับ plugins ที่เราจะใช้งานเสียก...
การตั้งค่า Jenkins เชื่อมต่อ กับ Git
(ติดตั้ง Plugin Git)
 ก่อนอื่นต้องทาการติดตั้ง get clients โดยสามารถ download ได้จาก...
การตั้งค่า Jenkins เชื่อมต่อ กับ Git
(ตั้งค่า Git ให้พร้อมใช้งาน)
 กดเข้าไปที่ Manage Jenkins -> Configure System
 เลือก...
การตั้งค่า Jenkins เชื่อมต่อ กับ MSBuild
(ติดตั้ง Plugin MSBuild)
 โดยปกติ MSBuild จะมากับการลง MS.Visual Studio
 กดเข้า...
การตั้งค่า Jenkins เชื่อมต่อ กับ MSBuild
(ตั้งค่า MSBuild ให้พร้อมใช้งาน)
 กดเข้าไปที่ Manage Jenkins -> Configure System...
การใช้งาน jenkins ร่วมกับ Git, MSBuild
และ Nunit
 เริ่มจากการสร้าง job กัน Jenkins -> New item(ใหม่ Item)
-> ใส่ Item nam...
ใช้งาน Git ทาไม?
 เพราะเป็นโปรแกรม Source Code Management หรือโปรแกรมจัดการซอส
โค้ด นั้นเอง เราจึงต้องใช้งาน โปรแกรมประเภ...
การใช้งาน Git
1. มาที่ Source Code Management
เลือกที่ Git
2. ใส่ URL ของ Git ที่ต้องการ
3.กด Add เพื่อใส่ username, passw...
การสั่ง build Job ของ Jenkins
1. กด “Build Now” เพื่อสั่ง build
ตอนนี้ Job เรากาลัง build ครับ
ใช้งาน MSBuild ทาไม?
 หลังจากที่เรา build Git ของเราผ่านแล้ว ตอนนี้เราได้ Source Code มาอยู่ที่เครื่อง
แล้วนะครับ ปกติจะอ...
การใช้งาน MSBuild
1. Add build step -> Build a Visual
Studio…
2. MSBuild Version เลือก
Version ของ .Net 3. ใส่ Path ที่เก็...
การใช้งาน Nunit ทาไม?
 หลังจากที่ใช้งาน MSBuild ได้แล้ว ตอนนี้ Project เราสามารถ
build Source Code ของ VS ได้แล้วนะครับ
...
การใช้งาน Nunit
1. Add build step -> Execute
Windows batch commend
2. ใส่ “pathของNunit” ตามด้วย pathของtest ที่เราสร้างไว...
 หลังจากที่ Build Now เข้ามาใน Build Hissory เพื่อดู console
เลือก build ที่เราพึ่ง build
 ถ้าขึ้นยังงี้ คือ เราสามารถ r...
 เรามาดูที่ foder job เรา จะได้ไฟล์ .xml แบบนี้มานะครับ
 จากนั้นเราไปที่ Configure เพื่อ ทา report
 เลื่อนลงมาที่ Add p...
การดู Report
 หลังการ Save แล้ว เข้ามาดูที่ build ล่าสุด จะได้test Result
ขึ้นมา สามารถ กดไปดูได้
Test Result
การตั้งเวลาในการ poll&build
2. (ตย)การตั้งเวลา Build
ทุก 10 นาที
1. (ตย)การตั้งเวลา Poll ทุก
10 นาที
เมื่อเซตทุกอย่างแล้ว ...
การทาให้Jenkins build ทุกครั้งที่ git มีการ
เปลี่ยนแปลง
 นา link ที่เรา copy มาวางไว้ใน Webhook & Services
 เท่านี้ Jenkins ก็สามารถเอา Code มา build ทุกครั้งที่คุณ push ขึ้น
g...
Nächste SlideShare
Wird geladen in …5
×

Jenkins, Git, MSBuild, NUnit

1.000 Aufrufe

Veröffentlicht am

presentation การใช้งาน Jenkins ร่วมกับ Git, MSBuild และ NUnit

Veröffentlicht in: Software
  • Als Erste(r) kommentieren

Jenkins, Git, MSBuild, NUnit

  1. 1. Jenkins CI What is it?
  2. 2. ก่อนแรกมาทาความรู้จักกับ CI ก่อนนะครับ  CI (Continuous Integration) คือแนวคิด ทัศนะคติ รวมไป ถึงวัฒนธรรมของทีมและองค์กร  สิ่งที่ทีมพัฒนาควรจะตกลงร่วมกันในการพัฒนา 1. เมื่อมีเราทาการดึง code จาก repository ล่าสุดลงมาแล้ว จะต้อง สามารถ build และทดสอบผ่านทั้งหมดอยู่เสมอ 2. ทุกๆ คนจะต้องทาการ check-in code ไปยัง repository ทุกๆ ชั่วโมง หรือ ทุกๆ การเปลี่ยนแปลง ยิ่งทาบ่อยยิ่งดี เพราะว่าการ check-in มัน จะทาให้เกิดการพูดคุยภายในทีมอยู่เสมอ
  3. 3. จากข้อตกลงข้างต้นนั้น เราจะทาให้มันเกิดขึ้นได้อย่างไรล่ะ? 1. ก่อนที่จะทาการ Check-in code ของคุณไปยัง repository นั้น จะต้องทาการ build และต้องทดสอบผ่านทั้งหมด 2. แจ้งหรือตะโกนบอกให้ทีมรู้ว่า เราทาการแก้ไข code แล้วนะ เพื่อให้แต่ละคนทาการดึง code ล่าสุดลงมา เพื่อทาให้มั่นใจว่าการ integrate มันผ่านและทางานได้จริงๆ นะ 3. ทาการ Check-in code ไปยัง repository 4. จะต้องมีเครื่อง server หรือเครื่องแยกออกมา ทาการดึง code ล่าสุดจาก repository ลงมา แล้วทาการ build และ ทดสอบทั้งหมดอีกครั้ง เพื่อให้มั่นใจ ว่าทุกๆ อย่างผ่านนะ และในขั้นตอนนี้จะทาให้ไม่เกิดคาพูดที่ว่า มันสามารถทางานได้บน เครื่องผม/หนู นะ!! ดังนั้นถ้าเกิดปัญหาหรือข้อผิดพลาดขึ้นมาก็กลับไปแก้ไขใหม่หรือ rollback กลับไป และกลับไปทาข้อ 1 อีกครั้ง 5. เมื่อข้อ 4 ผ่านแล้ว ให้บอกทุกๆ คนในทีมทาการดึง code ชุดล่าสุดจาก repository ลงมาอีกครั้งหนึ่ง
  4. 4. แล้วเราจะลดขั้นตอนการทางานได้อย่างไรล่ะ?  คาถามนี้แหละ เป็นเหตุผลที่ต้องให้ทีมเริ่มมองหาเครื่องมือมาช่วยทาในข้อ 4 เพื่อ รวบรวมขั้นตอนการทางานจากขั้นตอนการทางานของแต่ละคนในทีม ซึ่งทุกคนจะต้อง ทางานด้วยขั้นตอนเหมือนกันด้วยนะ  ตัวอย่างเครื่องมือข้างต้นก็เช่น  SVN (Subversion)  CVS (Concurrent Versions System)  GIT  และอื่นๆ อีกมากมาย
  5. 5. กับมาที่ Jenkins มันคืออะไร?  Jenkins ก็คือ open source continuous integration tools เขียนโดย java และยัง support พวก source code management อย่าง git, svn, cvs อีกด้วย  สรุปก็คือ Jenkins จะเข้ามาช่วยทา CI และ Jenkins ยังสามารถเฝ้า repository ใดๆก็ได้เมื่อเกิดการ commit ขึ้น jenkins จะทาการ build version นั้นให้ทันที แล้วเราสามารถกาหนดได้ว่า หาก build สาเร็จให้ ลองรัน test case ก็ได้หรือจะให้ทาอะไร อื่นๆ ต่อไปได้  หลักการของ Jenkins คือเราจะต้องสร้าง Job ขึ้นมาก่อน แล้วกาหนดว่า Job นี้ จะใช้อะไรในการ Build หลังจาก Build สาเร็จแล้วให้ทาอะไร เมื่อได้ Job แล้วเรา ก็สามารถควบคุม Job นี้อีกทีได้เช่นตั้งเวลาการทางาน หรือจะสั่ง build โดยตรงเลย ก็ได้
  6. 6. สรุปแล้ว Jenkins CI ช่วยงานเรายังไง ในระบบการพัฒนา sotware ต่าง ๆ หลัก ๆ แล้วจะไม่พ้นในระบบการพัฒนาที่เป็น Design -> Dev -> Test -> Deploy CI มันคือกระบวนการที่ทาให้การส่งผ่านแต่ละขั้นตอนมันเกิดการ continuous คือต่อเนื่องนั่นเอง แต่เดิม Design เสร็จแล้ว Dev ต้องเขียน โปรแกรมเพื่อเปลี่ยน Design ให้เป็น หน้าตาเป็นโปรแกรม Dev เสร็จแล้ว Tester ก็ต้องทาการทดสอบต่าง ๆ เมื่อเสร็จแล้วก็ค่อย Deploy คาถามคือถ้า Test ไม่ผ่านทา ยังไง? Dev ก็ต้องเอาไปแก้ แล้วให้Tester ทาการ Test อีกรอบ ถามว่าตรงนี้จะเกิด การรอไหม? ช้าไหม? คาตอบคือมันช้าแน่ ๆ ไม่มีความต่อเนื่อง พูดถึงปัญหาต่อ ถ้า Test ผ่าน ต้อง Deploy ถูกไหม ปกติก็ต้อง Deploy โดยคน หรือใช้โปรแกรมต่าง ๆ ซึ่ง สุดท้ายก็ไม่พ้นคนอยู่ดี มันเลยมี Technology เข้ามาแก้ปัญหาส่วนนี้
  7. 7. แก้ยังไง? จะดีไหมถ้า Tester ไม่ต้องมาทาซ้า ๆ Dev ไม่ต้องคอยบอก Tester ว่าเสร็จ แล้วนะมาเทสด้วย แต่ให้มัน Test โดยอัตโนมัตหลังจากแก้Code เสร็จเลย หรือ แทนที่พอ Test เสร็จแล้ว ผ่านแล้ว Tester ต้องบอกให้คนที่มีหน้าที่ Deploy มา Deploy ต่อ ก็ ให้มันผ่าน Test แล้ว ก็ Deploy เลย มันลดขั้นตอน ลด Overhead เกิด ความเป็น Continuous ขึ้น ทีนี้ทาไมต้อง Integration เพราะว่า Dev Test Deploy มันคนละระบบกัน เลยต้อง Integrate กันแค่นั้นเอง ทีนี้ Jenkins ทาอะไรได้บ้าง มองจากที่ใช้งาน Dev -> update code Jenkins จะทาการดึง code นั้นมาทาการ Test ด้วยโปรแกรมต่าง ๆ ที่ Tester เขียน ถ้า Test แล้วผ่าน ก็ Deploy ด้วย script หรือ Program ไปเลย Jenkins เรียกการทางานเหล่านี้ในหนึ่งกระบวกการว่า Project ใน 1 Project มีหลาย Job ทางานต่อเนื่องกันไป
  8. 8. วิธีติดตั้ง Jenkins (สาหรับ windows)  ไปที่ Native packages ด้านขวามือ  เลือก Windows เพื่อ Download  Download ได้จาก https://jenkins-ci.org/
  9. 9.  File ที่ได้จากการ download เป็น .rar  ทาการแตก file .rar ออกมา จะได้ออกมาเป็นแบบนี้  เลือก setup เพื่อทาการติดตั้ง
  10. 10.  หน้าตาของ File setup ให้ทาการติดตั้งจนเสร็จ
  11. 11. หน้าตาของ Jenkins  สามารถ เข้าใช้งาน Jenkins ผ่านทาง web browser ได้  ด้วย url: http://localhost:8080/ 1 2 1 คือส่วนของเมนู ประกอบไปด้วย -สร้าง job ใหม่ -บุคคลที่เข้าใช้งาน -ประวัติการ build -Credentials -คิวของ job ที่กาลังทาการ build -สถานะของ job ที่กาลังทาการ build 2 คือส่วนของjob ประกอบไปด้วย S คือ status ของ job นั้น แบ่งออกเป็น 3สี คือ สีเทา = ยังไม่ได้build สีแดง = job Failed สีเหลือง = job Unstable สีน้าเงิน = job Success W คือ ค่าเฉลี่ยของการ build แต่ละครั้ง มีตั้งแต่ แจ่มใส จนถึง เมฆฝน ก็คือ build แล้ว job Success มากกว่า จนถึง job Failed มากกว่า
  12. 12. สิ่งที่ต้องรู้เกี่ยวกับ การเชื่อมต่อ Jenkins กับ Programs ต่างๆ 1. เราควรจะโหลดโปรแกรมเกียวกับ plugins ที่เราจะใช้งานเสียก่อน 2. Plugins ของ jenkins เป็นเพียงตัวเรียกใช้งานโปรแกรมหรือตัวเชื่อมต่อ เท่านั้น 3. ถ้าไม่มีโปรแกรม Plugins ก้อไม่สามารถใช้งานได้
  13. 13. การตั้งค่า Jenkins เชื่อมต่อ กับ Git (ติดตั้ง Plugin Git)  ก่อนอื่นต้องทาการติดตั้ง get clients โดยสามารถ download ได้จาก https://git-scm.com/download/win  เมือติดตั้งเสร็จเรียบร้อยให้กลับมาที่ Jenkins เพื่อทาการโหลด Plugin  กดเข้าไปที่ Manage Jenkins -> Manage Plugins -> Available / Installed(ที่มีอยู่)  ติ๊กถูกเลือก Git Plugin และ Git Client Plugin  กด  รอให้Jenkins ติดตั้ง Plugin จนเสร็จ  ติ๊กถูกที่
  14. 14. การตั้งค่า Jenkins เชื่อมต่อ กับ Git (ตั้งค่า Git ให้พร้อมใช้งาน)  กดเข้าไปที่ Manage Jenkins -> Configure System  เลือกไปที่ Git -> Add Git ใส่ Name กับ Path to Git…  เมื่อใส่เสร็จเรียบร้อย กด Save ,เสร็จการตั้งค่า Git แล้วนะครับ ^^ ในช่องนี้ให้ใส่ Path ของ Git Clients ที่เรา download มาแต่แรก เดิมทีจะอยู่ที่ C:Program FilesGitcmdgit.exe
  15. 15. การตั้งค่า Jenkins เชื่อมต่อ กับ MSBuild (ติดตั้ง Plugin MSBuild)  โดยปกติ MSBuild จะมากับการลง MS.Visual Studio  กดเข้าไปที่ Manage Jenkins -> Manage Plugins -> Available / Installed(ที่มีอยู่)  ติ๊กถูกเลือก MSBuild Plugin  กด  รอให้Jenkins ติดตั้ง Plugin จนเสร็จ  ติ๊กถูกที่
  16. 16. การตั้งค่า Jenkins เชื่อมต่อ กับ MSBuild (ตั้งค่า MSBuild ให้พร้อมใช้งาน)  กดเข้าไปที่ Manage Jenkins -> Configure System  เลือกไปที่ MSBuild -> MS Build installations... -> Add MSBuild, ใส่ Name กับ Path to MSBuild …  เมื่อใส่เสร็จเรียบร้อย กด Save ,เสร็จการตั้งค่า MSBuild แล้วนะครับ ^^ ในช่องนี้ให้ใส่ Path ของ MSBuild ปกติทีจะอยู่ที่ C:WindowsMicrosoft.NETFrameworkv4.0.30319MSBuild.exe
  17. 17. การใช้งาน jenkins ร่วมกับ Git, MSBuild และ Nunit  เริ่มจากการสร้าง job กัน Jenkins -> New item(ใหม่ Item) -> ใส่ Item name เลือก Freestyle project -> กด OK  จะได้หน้าตาของ Item ที่เราสร้างขึ้นมาใหม่
  18. 18. ใช้งาน Git ทาไม?  เพราะเป็นโปรแกรม Source Code Management หรือโปรแกรมจัดการซอส โค้ด นั้นเอง เราจึงต้องใช้งาน โปรแกรมประเภทนี้ เพื่อ ดึงซอสโค้ด มาให้jenkins ได้เรียกใช้งาน ต่างๆนาๆ  แล้วใช้โปรแกรม Source Code Management ตัวอื่นมีไหม? แล้วสามารถใช้ ร่วมกับ jenkins ได้ไหม? แล้วทาไมต้องใช้ Git?  คาตอบคือ มีครับ เช่น CVS, SVN เป็นต้น แล้วก็สามารถใช้ร่วมกับ jenkins ได้เช่นกัน เหตุผลที่ใช้Git เพราะเป็น Source Code Management ที่ได้รับความนิยม สูงสุดในการใช้ร่วมกับ jinkins ซึ่งทาให้หาข้อมูลได้ง่าย และที่สาคัญคนสั่งให้ทา presentation บอกให้ทา ผมจึงต้องทาครับ - -’  และควรจะ build job ให้ผ่านเพื่อให้รู้ว่าตอนนี้ เราสามารถดึง Source Code ได้แล้ว
  19. 19. การใช้งาน Git 1. มาที่ Source Code Management เลือกที่ Git 2. ใส่ URL ของ Git ที่ต้องการ 3.กด Add เพื่อใส่ username, password (ถ้ามี) เมื่อเซตทุกอย่างแล้ว กด Save ได้เลย
  20. 20. การสั่ง build Job ของ Jenkins 1. กด “Build Now” เพื่อสั่ง build ตอนนี้ Job เรากาลัง build ครับ
  21. 21. ใช้งาน MSBuild ทาไม?  หลังจากที่เรา build Git ของเราผ่านแล้ว ตอนนี้เราได้ Source Code มาอยู่ที่เครื่อง แล้วนะครับ ปกติจะอยู่ที่ C:Program Files (x86)Jenkinsjobs[ชื่อ item ที่เราตั้ง]workspace  เพราะเราทา Web App ด้วย MVC ซึ่งพัฒนาจาก MS. visual studio  เพราะเป็นโปรแกรมที่ติดตั้งมาพร้อมกับ visual studio เพื่อใช้ในการ build โปรแกรม  ซึ่งถ้าเราต้องการเช็คว่าโปรแกรมเรา build Source Code ของ VS ได้ไหม มี Error หรือ Warnings หรือป่าว และใช้งาน test อื่นๆต่อไป เราควรจะใช้ MSBuild ในการ build ให้สาเร็จเสียก่อน
  22. 22. การใช้งาน MSBuild 1. Add build step -> Build a Visual Studio… 2. MSBuild Version เลือก Version ของ .Net 3. ใส่ Path ที่เก็บ .sln (ไฟล์ที่ไว้รันโปรเจคอะครับ) 4. (ตย.)ถ้ามีปัญหา กรณี MSBuild Build Version ที่เครื่องไม่มี สามารถ ใช้คาสั่ง Command Line เปลี่ยนได้
  23. 23. การใช้งาน Nunit ทาไม?  หลังจากที่ใช้งาน MSBuild ได้แล้ว ตอนนี้ Project เราสามารถ build Source Code ของ VS ได้แล้วนะครับ  เพราะเราใช้ Nunit ในการ test Project เราจึงต้อง เชื่อมต่อ Nunit เพื่อ test job ใน jenkins  และที่สาคัญเหมือนเดิมครับ คนสั่งให้ทา presentation บอกให้ทา ผมจึง ต้องทาครับ - -’  ก่อนอื่น เราต้องโหลด Nunit เพื่อเรียกใช้งาน จาก http://nunit.org/?p=download
  24. 24. การใช้งาน Nunit 1. Add build step -> Execute Windows batch commend 2. ใส่ “pathของNunit” ตามด้วย pathของtest ที่เราสร้างไว้ 3. กด Save
  25. 25.  หลังจากที่ Build Now เข้ามาใน Build Hissory เพื่อดู console เลือก build ที่เราพึ่ง build  ถ้าขึ้นยังงี้ คือ เราสามารถ run test ผ่านหมดแล้วนะครับ
  26. 26.  เรามาดูที่ foder job เรา จะได้ไฟล์ .xml แบบนี้มานะครับ  จากนั้นเราไปที่ Configure เพื่อ ทา report  เลื่อนลงมาที่ Add post-build action -> Publish Nunit test… 1. ใส่ path ของ .xml ที่ได้มา 2. กด Save
  27. 27. การดู Report  หลังการ Save แล้ว เข้ามาดูที่ build ล่าสุด จะได้test Result ขึ้นมา สามารถ กดไปดูได้
  28. 28. Test Result
  29. 29. การตั้งเวลาในการ poll&build 2. (ตย)การตั้งเวลา Build ทุก 10 นาที 1. (ตย)การตั้งเวลา Poll ทุก 10 นาที เมื่อเซตทุกอย่างแล้ว กด Save ได้เลย
  30. 30. การทาให้Jenkins build ทุกครั้งที่ git มีการ เปลี่ยนแปลง
  31. 31.  นา link ที่เรา copy มาวางไว้ใน Webhook & Services  เท่านี้ Jenkins ก็สามารถเอา Code มา build ทุกครั้งที่คุณ push ขึ้น git server แล้วครับ  ***ถ้าหากคุณติดตั้ง Jenkins ไว้หลัง Router บ้านคุณเองอย่าลืมที่จะทา Port Forwarding นะครับ...!!!

×