ApexHuasคู่มือช่างเว็บ GitHub repo

บทที่ 11 — CI/CD: merge แล้วเว็บอัปเดตเอง

CI = ตรวจโค้ดอัตโนมัติ (บทที่ 7) · CD = ส่งขึ้น server อัตโนมัติ (บทนี้)

รวมกันคือ: กด merge เข้า uat แล้วเดินไปชงกาแฟ กลับมาเว็บอัปเดตเรียบร้อย

ทำไมต้องอัตโนมัติ

deploy ด้วยมือ vs อัตโนมัติ

อัตโนมัติ

  • ขั้นตอนเหมือนกันทุกครั้ง ไม่มีลืม
  • ใครก็ deploy ได้ ไม่ต้องรอคนที่รู้วิธี
  • มีบันทึกว่าใคร deploy อะไร เมื่อไหร่
  • ตรวจสุขภาพเว็บให้อัตโนมัติหลังเสร็จ
  • พังแล้วเห็นทันทีว่าพังที่ขั้นไหน

ด้วยมือ

  • ต้องจำลำดับคำสั่ง 5-6 ขั้น
  • ข้ามขั้นตอนตอนรีบ (มักเป็นตอนที่พังที่สุด)
  • คนเดียวในทีมที่ทำเป็น = คอขวด
  • ไม่มีใครรู้ว่าเวอร์ชันบน server มาจาก commit ไหน
  • ลืมเช็คว่าเว็บยังขึ้นอยู่ไหมหลังทำเสร็จ

ท่อทั้งหมดเมื่อ merge เข้า uat

สิ่งที่เกิดขึ้นอัตโนมัติ (~3-4 นาที)

1. merge PR เข้า uat

การกระทำเดียวของคนในกระบวนการนี้ — ที่เหลือหุ่นยนต์ทำหมด

คน

1 / 8

ดูของจริงได้ที่แท็บ Actions บน GitHub — ทุก deploy มีบันทึกไว้หมด

Secrets: เก็บความลับยังไงไม่ให้หลุด

ระบบ deploy ต้องใช้ของลับ (กุญแจ SSH, ที่อยู่ server) แต่ ห้าม เขียนลงในโค้ดเด็ดขาด เพราะทุกคนที่เห็น repo จะเห็นด้วย

ความลับของโปรเจกต์นี้เก็บไว้ที่ไหน (คลิกดู)

คลิกชั้นใดก็ได้เพื่อดูรายละเอียด

เว็บพังหลัง deploy ทำยังไง

แผนฉุกเฉิน

1. 1. ดูว่างาน deploy แดงตรงไหน

เปิดแท็บ Actions บน GitHub ดูว่าล้มที่ build, ที่ pull, หรือที่ health check — บอกทิศทางได้เยอะ

gh run list --branch uat --limit 3
1 / 4

เว็บคู่มือเล่มนี้ก็ใช้ระบบเดียวกัน

หน้าที่คุณอ่านอยู่นี้ deploy ด้วยท่ออีกเส้นที่ทำงานคล้ายกัน: แก้ไฟล์ Markdown ใน docs/learning/ → merge เข้า uat → ระบบสร้างเว็บใหม่ → ส่งขึ้น server → เช็คว่าเปิดได้

สองท่อบนเครื่องเดียวกัน

  • deploy.yml

    เว็บ ApexHuas — build Docker image แล้วให้ server ดึงไปรัน

    apexhuas.…
  • learning.yml

    คู่มือเล่มนี้ — สร้างไฟล์ HTML แล้วส่งขึ้นโฟลเดอร์บน server ให้ Caddy เสิร์ฟ

    learn.…
  • ทั้งคู่ทำงานเมื่อโค้ดเข้า uat

    และทั้งคู่จบด้วยการตรวจสุขภาพเว็บจริง ถ้าเว็บไม่ตอบ 200 = งานขึ้นแดง

เช็คความเข้าใจ

บทหน้า: ลงมือทำจริงหนึ่งรอบเต็ม ตั้งแต่ประโยคที่พิมพ์สั่ง AI จนเว็บอัปเดต