21. Custom Actions
Custom Actions ใน GitHub Actions คืออะไร
Custom Action คืออะไร
Custom Action คือ Workflow ที่เราสร้างขึ้นเองเพื่อทำงานเฉพาะอย่าง ใน GitHub Actions workflow โดยสามารถ:
ประเภทของ Custom Actions
- Composite Actions - รวม multiple steps เข้าด้วยกัน เขียนด้วย YAML นี่แหละ
- JavaScript Actions - รันบน Node.js runtime เขียนด้วย JavaScript หรือ TypeScript
- Docker Actions - รันใน Docker container เขียนด้วยอะไรก็ได้
โครงสร้างพื้นฐาน
- ชื่อ
folder แล้วแต่ชอบ- เราต้องมีไฟล์ชื่อ action.yml/action.yaml - เป็นไฟล์กำหนด metadata, inputs, outputs
- Source code - โค้ดที่ทำงานจริง
- ถ้าเป็นไปได้ก็เขียน README.md เป็นคู่มือการใช้งานกันด้วยนะ แต่ในตัวอย่างนี้จะไม่ได้เขียนนะ ทำไม่ทันจริงๆ
ทำไมเราถึงต้องใช้ Custom Actions ใน GitHub Actions
-
Code Reusability & Maintainability
- หลีกเลี่ยงการเขียนโค้ดซ้ำๆ ในหลาย workflow
- แก้ไขที่จุดเดียว ส่งผลไปทุก workflow ที่ใช้
- ลดความซับซ้อนในการจัดการโค้ด
-
Abstraction & Standardization
- ซ่อนความซับซ้อนของขั้นตอนการทำงาน
- ทำให้ workflow อ่านง่ายและเข้าใจง่าย
- สร้างมาตรฐานการทำงานในองค์กร
-
เมื่อไม่มี Community Actions ที่เหมาะสม
- Specific Business Requirements: ความต้องการเฉพาะของบริษัท/โปรเจค
- Proprietary Tools: Integration กับ internal systems หรือ legacy systems
- Security & Compliance: ไม่สามารถใช้ external actions ได้เพราะ security policy
- Missing Features: Community actions มีฟีเจอร์ไม่ครบหรือไม่ตรงความต้องการ
-
Performance & Control
- จัดการกับงานซับซ้อนที่ต้องใช้หลายขั้นตอน
- Optimize การทำงานเฉพาะ use case ของเรา
- Full control over dependencies และ version management
-
Sharing & Distribution
- แบ่งปันให้ทีมอื่นหรือ community ใช้
- สร้าง ecosystem ของ actions ภายในองค์กร