การทำ automate deploy ด้วย buddy.works

เว็บ buddy.works เป็นเว็บที่ให้บริการ deploy งานของเราขึ้น production/staging เป็นระบบอัตโนมัติ

ลักษณะการทำงานมันเป็นยังไง ผมจะเล่าให้ฟัง

เว็บ buddy.works มันจะคอยดักจับว่ามีโค้ดใหม่ push ขึ้นไปยัง git branch ที่กำหนดไว้หรือไม่ ถ้ามี มันจะเอาไฟล์ที่เกิดการเปลี่ยนแปลงหรือที่เพิ่ง push ขึ้นมา ftp ขึ้นเซิฟเวอร์

การกำหนด ftp นั้นก็ขึ้นอยู่กับเราว่าจะใช้ ftp ไปที่ไหน เพราะฉะนั้นถ้าเรากำหนด ftp ไปที่ production มันก็จะเอาโค้ดเราขึ้นโปรดักชั่นให้ ถ้าเรากำหนด ftp ไปที่ staging มันก็จะเอาโค้ดเราขึ้น staging ให้

โดยเว็บ buddy.works นั้นมีแอคเค้าฟรีให้ใช้ แต่ก็นั่นแหละมันก็ต้องแลกมาด้วยข้อจำกัดบางอย่าง ซึ่งผมลองเล่นดูแล้ว ถ้าบริหารมันดีๆ มันก็สามารถใช้งานจริงจังได้เลย หรือถ้าหากท่านเป็นคนไม่ได้ขัดสนเงินทอง ก็จ่ายค่าบริการเขาซะ จะได้สบาย น้ำพึ่งเรือเสือพึ่งป่ากันไป 

เอาละทีนี้เรามาดูวิธีการใช้งาน 

อ้อ… ลืมบอกไปว่างานนี้สำหรับคนที่ใช้ git เท่านั้นจึงจะมีสิทธิ พวกที่เขียนโปรแกรมแบบเดิมๆ ไม่ใช้ git ท่านก็จะไม่ใช่ผู้ผ่านเข้ารอบ  นะจ๊ะ

มาดูกันที่หน้าเว็บ https://buddy.works ซึ่งโม้คุณสมบัติของบริการไว้ และ มี Pricing ให้คลิกดูเพื่อการตัดสินใจถูกแพง  และด้านซ้ายมือจะมีลิ้งก์สำหรับสมัครเข้าใช้งาน 

นี่เป็นตาราง Price เห็นมั้ยว่ามันมี 0 เหรียญต่อเดือน

ผมคลิกล้อกอินจากหน้าแรกด้วย bitbucket มันจึงพามาหน้าล้อกอินเว็บ bitbucket เพื่อทำการขออนุญาติสิทธิ์ 

คลิกปุ่ม Allow เพื่ออนุญาติ

จากนั้นระบบจะวิ่งกลับมาที่ buddy.works ให้คลิกที่ Create new project

จากนั้นเลือกว่าโค้ดของเราอยู่ที่บริการ git ตัวไหน อย่างของผมผมเก็บโค้ดไว้ที่ Bitbucket ผมจึงเลือก Bitbucket

ระบบจะวิ่งไปหน้า Bitbucket อีกทีถ้าหากเราล้อกเอ้าออกมาแล้ว 

แล้วก็จะถามให้เรา Grant access สิทธิ์ในการเข้าใช้งาน คลิกปุ่ม Grant access ไปแหละครับ ไม่งั้นมันก็ใช้งานไม่ได้

เมื่อระบบวิ่งกลับมาหน้า buddy.works รายการ repository ทั้งหมดที่เรามีก็จะแสดงขึ้นมา เราก็เลือกว่าจะทำงานกับ repository ตัวไหน อย่างของผม ผมคิดไว้ว่าเมื่อมีโค้ดเปลี่ยนแปลงใน WC Refer System ผมจะให้ buddy.works ftp โค้ดผมขึ้น staging ไปให้ tester ทดสอบ

คลิกปุ่ม Add a new pipeline

  • ตั้งชื่อในช่อง Name
  • เลือก On push เพื่อเป็นการบอกว่าให้ทำงานเมื่อมีโค้ด push ขึ้น git
  • เลือก Single branch
  • เลือก develop (เลือก branch ที่จะให้ทำงานนะครับ)
  • คลิกปุ่ม Add a new pipeline

คลิก SFTP หรือ FTP เพื่อเลือกว่าจะใช้บริการตัวไหนช่วยเอาโค้ดขึ้นเซิฟเวอร์ อย่างผม ผมเลือก SFTP เพราะ เซิฟเวอร์ผมเขาใช้ SFTP เอ๊ะยังไง  เอาเป็นว่าตรงนี้ถ้าท่านเคยเอาโค้ดขึ้นโปรดักชั่นมั่งก็จะเข้าใจ หรือถ้าหากไม่เข้าใจก็ต้องลองถามคนที่รู้เรื่อง ftp นะครับ

คลิกเลือก Bitbucket repository ด้านล่างก็ป้อนรายละเอียดต่างๆเกี่ยวกับ fpt พวก ip, port, password อะไรเทือกๆนั้น จากนั้นคลิกปุ่ม Add this action 

หรือถ้าหากต้องการทดสอบการเชื่อมต่อก่อน ให้คลิกปุ่ม Test

มาเจอหน้านี้ นั่นก็หมายความว่า ความพร้อมของเรา 100% แล้ว 

ทีนี้ให้ไปแก้ไขโค้ดแล้ว push โค้ดขึ้นไปยัง branch ตามที่เรากำหนดในเงื่อนไข  แล้วให้สลับหน้ากลับมาที่ buddy.works ซึ่งมันจะต้องแสดงคำว่า In progress

เมื่อ buddy.works ทำการ ftp อัปโหลดโค้ดเราขึ้นเซิฟเวอร์เรียบร้อยแล้ว มันจะแสดงว่า complete

หลังจากนี้ลองใช้ filezilla ftp เข้าไปดูโค้ดบนเซิฟเวอร์องเราดูว่าโค้ดมันเปลี่ยนไปจริงไหม ตามที่เรา push โค้ดเข้าไปใน git

หลังจากนี้ไป เราเขียนโค้ด เรา push โค้ด แล้วที่เหลือมันเป็นระบบอัตโนมัติ  ชีวิตมันช่างมีความสุข 

ก่อนจากกันไป อยากจะบอกว่าสิ่งที่ buddy.works สามารถทำได้ยังมีอีกเพียบนะครับ ลองเล่นๆดู