ตั้งค่า Auto deploy
เลือก trigger: polling, GitHub push หรือรอ CI ผ่าน
เลือก trigger
| โหมด | การทำงาน |
|---|---|
| Auto deploy / polling | ตรวจ branch ที่กำหนดทุกห้านาทีและ deploy revision ใหม่ |
| GitHub push | Sync ทันทีจาก push ที่ตรวจลายเซ็น พร้อม polling สำรอง |
| Actions hook | Sync เบื้องหลังได้ แต่รอ CI hook ก่อน deploy |
การสร้าง hook เปิด Auto deploy และเลือก mode สมาชิกต้องมี webhooks.manage กับ deploy.start ส่วน monitoring token ต้องมี logs.read ด้วย
เชื่อม GitHub push
สร้าง GitHub webhook secret ใน Project แล้วคัดลอกทันที ใน repository Settings → Webhooks ใช้ payload URL ที่แสดง, application/json, secret และ Just the push event Portal ตรวจ X-Hub-Signature-256, repository และ branch แล้ว fetch branch tip ปัจจุบัน การส่งซ้ำไม่สร้าง release ซ้ำของ revision เดียวกัน
รอ CI ก่อน deploy
สร้าง Actions hook เก็บ token ใน PORTAL_DEPLOY_TOKEN แบบ Actions secret และ URL ใน PORTAL_DEPLOY_URL แบบ Actions variable วาง step นี้หลัง checks ผ่านใน job เดิม เปลี่ยน main ให้ตรง branch
- name: Trigger Portal deploy
if: github.ref == 'refs/heads/main'
env:
PORTAL_DEPLOY_URL: ${{ vars.PORTAL_DEPLOY_URL }}
PORTAL_DEPLOY_TOKEN: ${{ secrets.PORTAL_DEPLOY_TOKEN }}
run: curl --fail-with-body --silent --show-error --request POST --header "Authorization: Bearer $PORTAL_DEPLOY_TOKEN" "$PORTAL_DEPLOY_URL"202 หมายถึงเข้าคิว ไม่ใช่ deploy สำเร็จ Hook sync branch tip ที่กำหนด ไม่ได้ pin ไปยัง commit ที่ CI รอบนั้นทดสอบ ให้ตรวจผลจาก Portal release logs
ปิดให้ตรงเจตนา
ปิด GitHub hook จะกลับไป polling ต้องปิด Auto deploy เพื่อหยุด deploy อัตโนมัติทั้งหมด ปิด Actions hook จะหยุด deploy จนเลือก mode ใหม่ การลบสมาชิกไม่ปิด automation ของโปรเจกต์ ต้อง rotate/disable triggers แยก ส่วน notification hooks ส่งผลออกไป ไม่ได้สั่ง deploy