GitHub Actions เบื้องต้น

CI/CD สำหรับ Machine Learning

Ravi Bhadauria

Machine Learning Engineer

GitHub Actions คืออะไร?

  • GitHub Actions (GHA): แพลตฟอร์ม CI/CD สำหรับทำให้ pipeline ทำงานอัตโนมัติ
  • Pipeline: ลำดับขั้นตอนที่แสดงการไหลของงานและข้อมูล
CI/CD สำหรับ Machine Learning

GitHub Actions คืออะไร?

ภาพสายการประกอบรถยนต์ที่มีคนงานประจำอยู่ในแต่ละขั้นตอน เช่น การติดตั้งเครื่องยนต์ ล้อ และการพ่นสีตัวถัง

CI/CD สำหรับ Machine Learning

GitHub Actions คืออะไร?

GitHub Actions สร้างชุดขั้นตอนที่กำหนดไว้สำหรับโปรเจกต์ซอฟต์แวร์ เช่น การ checkout repository การ build โค้ด การรันเทสต์ หรือการ deploy แอปพลิเคชัน

1 https://medium.com/empathyco/applying-ci-cd-using-github-actions-for-android-1231e40cc52f
CI/CD สำหรับ Machine Learning

องค์ประกอบของ GHA: Event

  • Event: กิจกรรมเฉพาะใน repository ที่ทริกเกอร์การรัน workflow
    • Push
    • Pull Request
    • การเปิด issue
CI/CD สำหรับ Machine Learning

องค์ประกอบของ GHA: Workflow

  • Workflow: กระบวนการอัตโนมัติที่รัน job ตั้งแต่หนึ่งรายการขึ้นไป
    • กำหนดในไฟล์ YAML
    • ทริกเกอร์อัตโนมัติด้วย event
      • รันด้วยตนเองได้เช่นกัน
    • เก็บไว้ในไดเรกทอรี .github/workflows ใน repository
    • กำหนด workflow ได้หลายรายการ
CI/CD สำหรับ Machine Learning

องค์ประกอบของ GHA: Steps และ Actions

  • Steps: หน่วยงานย่อยแต่ละชิ้น
    • ทำงานตามลำดับ โดยขึ้นอยู่กับขั้นตอนก่อนหน้า
    • รันบนเครื่องเดียวกัน จึงแชร์ข้อมูลได้
    • ตัวอย่างหน่วยงาน
      • แอปพลิเคชัน compiled code, shell script
      • Action: แอปพลิเคชันเฉพาะของแพลตฟอร์ม GHA
        • เช่น checkout repo, comment on PR
CI/CD สำหรับ Machine Learning

องค์ประกอบของ GHA: Jobs และ Runners

  • Job: ชุดของ steps
    • แต่ละ job ทำงานอิสระจากกัน
    • รันแบบขนานได้
    • ทำงานบนเครื่องคอมพิวต์ที่เรียกว่า runners
CI/CD สำหรับ Machine Learning

ตัวอย่าง GHA workflow อย่างง่าย

ภาพแสดง push event ใน repository ที่ทริกเกอร์ workflow โดยมี job เดียวรันบนเครื่อง runner Ubuntu Linux ซึ่งประกอบด้วย 2 steps คือการ checkout repo และการรันโค้ด Python

  • Event: Push
  • Job: รันบน runner แบบ Ubuntu มีสอง steps
    • Action: Checkout Repo
    • รันโค้ด Python
CI/CD สำหรับ Machine Learning

ภาพรวมทั้งหมด

ภาพแสดงองค์ประกอบของ GitHub Actions workflow ทั่วไป โดยเน้นการรัน job แบบขนานและการรัน step แบบต่อเนื่อง

CI/CD สำหรับ Machine Learning

มาฝึกกันเถอะ!

CI/CD สำหรับ Machine Learning

Preparing Video For Download...