Skip to content
CodeSook
CodeSook

21. Custom Actions


Custom Actions ใน GitHub Actions คืออะไร

Custom Action คืออะไร

Custom Action คือ Workflow ที่เราสร้างขึ้นเองเพื่อทำงานเฉพาะอย่าง ใน GitHub Actions workflow โดยสามารถ:

ประเภทของ Custom Actions

  1. Composite Actions - รวม multiple steps เข้าด้วยกัน เขียนด้วย YAML นี่แหละ
  2. JavaScript Actions - รันบน Node.js runtime เขียนด้วย JavaScript หรือ TypeScript
  3. Docker Actions - รันใน Docker container เขียนด้วยอะไรก็ได้

โครงสร้างพื้นฐาน

  • ชื่อ folder แล้วแต่ชอบ
    • เราต้องมีไฟล์ชื่อ action.yml/action.yaml - เป็นไฟล์กำหนด metadata, inputs, outputs
    • Source code - โค้ดที่ทำงานจริง
    • ถ้าเป็นไปได้ก็เขียน README.md เป็นคู่มือการใช้งานกันด้วยนะ แต่ในตัวอย่างนี้จะไม่ได้เขียนนะ ทำไม่ทันจริงๆ

ทำไมเราถึงต้องใช้ Custom Actions ใน GitHub Actions

  1. Code Reusability & Maintainability

    • หลีกเลี่ยงการเขียนโค้ดซ้ำๆ ในหลาย workflow
    • แก้ไขที่จุดเดียว ส่งผลไปทุก workflow ที่ใช้
    • ลดความซับซ้อนในการจัดการโค้ด
  2. Abstraction & Standardization

    • ซ่อนความซับซ้อนของขั้นตอนการทำงาน
    • ทำให้ workflow อ่านง่ายและเข้าใจง่าย
    • สร้างมาตรฐานการทำงานในองค์กร
  3. เมื่อไม่มี Community Actions ที่เหมาะสม

    • Specific Business Requirements: ความต้องการเฉพาะของบริษัท/โปรเจค
    • Proprietary Tools: Integration กับ internal systems หรือ legacy systems
    • Security & Compliance: ไม่สามารถใช้ external actions ได้เพราะ security policy
    • Missing Features: Community actions มีฟีเจอร์ไม่ครบหรือไม่ตรงความต้องการ
  4. Performance & Control

    • จัดการกับงานซับซ้อนที่ต้องใช้หลายขั้นตอน
    • Optimize การทำงานเฉพาะ use case ของเรา
    • Full control over dependencies และ version management
  5. Sharing & Distribution

    • แบ่งปันให้ทีมอื่นหรือ community ใช้
    • สร้าง ecosystem ของ actions ภายในองค์กร