วันก่อนพี่เขียนบทความเรื่องการทำ auto deployment ใน bitbucket แต่บทความนั้นเป็นการเซ็ต sftp การทำ auto deployment จาก bitbucket repo ขึ้นไปยัง digital ocean ด้วย pipeline

คราวนี้จะทำ auto deploy ด้วย ftp คิดง่ายๆว่าพอมีการ push โค้ดขึ้น bitbucket มันก็จะหยิบเอาโค้ดใน repo ftp ส่งเข้าเซิฟเวอร์ของเราอัตโนมัติ เราไม่ต้องมาใช้ filezilla ftp ให้วุ่นวาย

เริ่ม

1.เข้าไปยัง repo ที่ต้องการทำ auto deploy จากนั้นคลิก Settings (1) > PIPELINES Settings (2) > คลิก Enable (3) > คลิกปุ่ม Configure bitbucket pipelines.yml (4)

2.หลังคลิกปุ่ม Configure bitbucket pipelines.yml ก็จะพบกับหน้านี้ที่บอกว่าเซ็ตอัพ Pipelines เสร็จเรียบร้อยแล้ว ตรงหน้านี้พี่ไม่มั่นใจจริงๆว่า ถ้าน้องๆทำครั้งแรกมันจะมาหน้านี้หรือไม่ ถ้ามันไม่มาหน้านี้ให้ดูข้อถัดไปนะครับ

3.คลิกเมนู Deployments (1) > คลิกแท็บ PHP (2) > เลื่อน scrollbar หา FTP deploy (3) > คลิกเมนู FTP deploy (4)

4.หน้าต่างตัวอย่างการตั้งค่า FTP deploy จะแสดงขึ้นมา ให้คลิกแท็บ Examples (1) แล้วคลิกปุ่ม Copy (2) แล้วคลิกเครื่องหมายกากบาท ปิดหน้าจอไป

5.ลากคลุมตั้งแต่คำว่า script: ไปจนสุดไฟล์

6.จากนั้นกดปุ่ม ctrl+v วางไอ้ที่ก้อปมาแหมะลงไป เสร็จแล้วแก้ไขตรง
-USER: ป้อน ftp username ของเราเข้าไป
-SERVER: ป้อน IP เซิฟเวอร์ของเราเข้าไป
-REMOTE_PATH: จะให้ bitbucket อัปโหลดไฟล์ไปไว้ที่ไหนก็ใส่พาธไป
สังเกตตรง PASSWORD: นะครับ ค่าที่ใส่ไว้คือ $FTP_PASSWORD อันนี้คือตัวแปร เดี๋ยวเราจะไปสร้างมัน เราไม่ใส่พาสเวิร์สลงไปตรงๆนะครับ

7.เพิ่ม
-name: Deploy to production (1)
-deployment: Production (2)

คลิกที่ปุ่มฟันเฟือง (3) เลื่อน scrollbar ลงไปหาคำว่า Production (4) ในช่องป้อน
FTP_PASSWORD > ป้อนรหัสผ่าน > ติ๊ก Secure > คลิกปุ่ม Add (5)

8.ดูให้ดีนะครับ ตรงที่วงกลมไว้สองอันในภาพ มันจะต้องเป็นคำๆเดียวกัน ส่วนที่พี่เอาสี่เหลี่ยมแดงทำเครื่องหมายไว้ชื่อจะเหมือนกัน ขาดแต่ว่าตัวหนึ่งจะมีเครื่องหมาย $ นำหน้า

9.คลิกปุ่ม Commit

10. ไม่ต้องแก้ไขข้อความอะไรหรอก คลิกปุ่ม Commit อีกที

11.แล้ว bitbucket ก็พาเรามายังหน้า Deployments พร้อมด้วยมีการ์ดอันหนึ่งกำลังทำงาน นั่งรอครับ

12.ถ้าไม่มีอะไรผิดพลาดในขั้นตอนการเซ็ตติ้ง ผลลัพธ์มันจะต้องออกมาเขียวอี๋ดังนี้ นั่นหมายความว่า bitbucket ได้อัปโหลดไฟล์ขึ้นเซิฟเวอร์ให้เราแล้ว

13.เมื่อลอง ftp ด้วย filezilla เข้าไปดูโฟลเดอร์ที่กำหนดไว้ ไฟล์จาก repo มาเต็มเลย

ต่อไปเราก็ไม่ต้อง ftp เองแล้ว

เพิ่มเติม ไฟล์ pipeline มันสามารถกำหนดได้นะครับว่าจะ trigger auto หรือ manual อีกทั้งยังกำหนด branch ได้ด้วยว่าถ้า branch นี้ให้ ftp ไปที่ไหน ถ้า branch นี้ให้ ftp ไปที่ไหน

ลองหาอ่านจาก docs ของ bitbucket นั่นแหละครับ มีครบ มีเพียบ