วิธีตั้งค่าและใช้ GitHub Actions เพื่อทำ CI/CD อัตโนมัติสำหรับโครงการของคุณ

ที่มาภาพ: Unknown Source

วิธีตั้งค่าและใช้ GitHub Actions เพื่อทำ CI/CD อัตโนมัติสำหรับโครงการของคุณ

⚡ สรุป 30 วิ

GitHub Actions เป็นระบบอัตโนมัติที่ฝังอยู่ใน GitHub ทำให้คุณสามารถสร้าง pipeline CI/CD ได้โดยไม่ต้องออกจากหน้า repository การตั้งค่าที่ถูกต้องจะช่วยให้โค้ดของคุณถูกทดสอบและ deploy อย่างต่อเนื่อง ลดควา…

Overview

GitHub Actions เป็นระบบอัตโนมัติที่ฝังอยู่ใน GitHub ทำให้คุณสามารถสร้าง pipeline CI/CD ได้โดยไม่ต้องออกจากหน้า repository การตั้งค่าที่ถูกต้องจะช่วยให้โค้ดของคุณถูกทดสอบและ deploy อย่างต่อเนื่อง ลดความเสี่ยงจากข้อผิดพลาดที่อาจเกิดขึ้นในขั้นตอน manual

  • CI (Continuous Integration) ทำการ build และ test ทุกครั้งที่มีการ push หรือ pull request
  • CD (Continuous Delivery/Deployment) นำโค้ดที่ผ่านการทดสอบไป deploy ไปยังสภาพแวดล้อมที่กำหนดโดยอัตโนมัติ
  • การตั้งค่า GitHub Actions ใช้ไฟล์ YAML ที่อยู่ในโฟลเดอร์ `.github/workflows`

Prerequisites

ก่อนเริ่มใช้งานควรตรวจสอบว่ามีเครื่องมือและการตั้งค่าพื้นฐานดังต่อไปนี้

  • Repository อยู่บน GitHub และคุณมีสิทธิ์เขียน (write) หรือดูแล (admin)
  • แพลตฟอร์มหรือบริการที่ต้องการ deploy (เช่น Docker Hub, AWS, Azure, Netlify) มี account และ API token พร้อมใช้
  • โค้ดของคุณมีสคริปต์ build/test ที่ทำงานได้ในเครื่อง local (เช่น `npm run build` หรือ `go test`)

Repository Setup

การจัดโครงสร้าง repository อย่างเป็นระบบจะทำให้ workflow อ่านง่ายและบำรุงรักษาได้ง่าย

  • สร้างโฟลเดอร์ `.github/workflows` หากยังไม่มี
  • ตั้งชื่อไฟล์ workflow อย่างสื่อความหมาย เช่น `ci-cd.yml` หรือ `deploy.yml`
  • ตรวจสอบว่าไฟล์ `.gitignore` ไม่บล็อกไฟล์ YAML หรือโฟลเดอร์ที่เกี่ยวข้อง

Create Workflow File

ไฟล์ YAML เป็นหัวใจของ GitHub Actions การเขียนให้เป็นมิตรต่อการอ่านช่วยลดความสับสน

```yaml name: CI/CD Pipeline

on: push: branches: [ main ] pull_request: branches: [ main ]

jobs: build-test: runs-on: ubuntu-latest steps:

  • uses: actions/checkout@v3
  • name: Set up Node

uses: actions/setup-node@v3 with: node-version: '20'

  • name: Install dependencies

run: npm ci

  • name: Run tests

run: npm test ```

  • `name` กำหนดชื่อ workflow ที่แสดงบน UI ของ GitHub
  • `on` ระบุเหตุการณ์ที่ทำให้ workflow เริ่มทำงาน (push, pull_request ฯลฯ)
  • `jobs` แบ่งงานย่อยตามขั้นตอนที่ต้องการทำ

Workflow Steps

Build

ขั้นตอนนี้จะคอมไพล์หรือสร้าง artifact ที่จะนำไป deploy

  • ใช้ `actions/setup-<language>` เพื่อติดตั้ง runtime ที่ต้องการ
  • รันคำสั่ง build เช่น `npm run build` หรือ `go build -o app`

Test

การทดสอบอัตโนมัติช่วยให้มั่นใจว่าโค้ดทำงานตามที่คาดหวัง

  • รัน unit test, integration test หรือ linting ตามที่โครงการกำหนด
  • ใช้ `continue-on-error: false` เพื่อให้ workflow หยุดเมื่อพบข้อผิดพลาด

Deploy

ขั้นตอนสุดท้ายคือการส่ง artifact ไปยังสภาพแวดล้อม production หรือ staging

```yaml deploy: needs: build-test runs-on: ubuntu-latest steps:

  • uses: actions/checkout@v3
  • name: Deploy to AWS Elastic Beanstalk

uses: einaregilsson/beanstalk-deploy@v20 with: aws_access_key_id: ${{ secrets.AWS_ACCESS_KEY_ID }} aws_secret_access_key: ${{ secrets.AWS_SECRET_ACCESS_KEY }} application_name: my-app environment_name: my-env version_label: ${{ github.sha }} ```

  • `needs` ระบุว่าขั้นตอน deploy ต้องรอให้ job `build-test` เสร็จสมบูรณ์ก่อน
  • ใช้ action ที่พัฒนาโดยชุมชนหรือเขียนสคริปต์เองเพื่อทำ deploy

Secrets Management

ข้อมูลสำคัญเช่น API token หรือคีย์ส่วนตัวต้องเก็บใน GitHub Secrets ไม่ให้เปิดเผยในโค้ด

ประเภทวิธีเก็บการเข้าถึงใน Workflow
Access TokenSettings Secrets Actions`${{ secrets.MY_TOKEN }}`
SSH KeySettings Secrets Actions (แบบ multiline)`${{ secrets.SSH_PRIVATE_KEY }}`
Environment Variableใช้ `env:` ในขั้นตอน`${{ env.VAR_NAME }}`
**Tip: อย่าใช้ค่า secrets ในขั้นตอน `run:` ที่แสดงผลลัพธ์โดยตรง เพราะอาจทำให้ค่าเหล่านั้นหลุดออกมาทาง logs

Tips & Best Practices

  • แยก workflow ตามสภาพแวดล้อม สร้างไฟล์ `ci.yml` สำหรับการทดสอบและ `cd.yml` สำหรับ deploy production
  • Cache dependencies ใช้ `actions/cache@v3` เพื่อลดเวลาการติดตั้งแพคเกจในแต่ละ run
  • กำหนด timeout ให้แต่ละ job ไม่ทำงานนานเกินไป (`timeout-minutes: 15`)
  • ตรวจสอบผลลัพธ์ ตั้งค่า notifications หรือ Slack integration เพื่อรับแจ้งเตือนเมื่อ workflow ล้มเหลว
**ข้อควรระวัง: อย่าให้ workflow มีขั้นตอนที่ใช้ `sudo` หรือทำการแก้ไขไฟล์ระบบโดยไม่จำเป็น เพราะอาจทำให้ runner ถูกโจมตีได้

Summary

การตั้งค่า GitHub Actions ให้ทำ CI/CD อัตโนมัติมีขั้นตอนหลัก ๆ ดังนี้

  • เตรียม repository และสร้างโฟลเดอร์ `.github/workflows`
  • เขียนไฟล์ YAML ที่ระบุเหตุการณ์ `on`, งาน `jobs` และขั้นตอน `steps`
  • แบ่ง workflow เป็นขั้นตอน Build Test Deploy อย่างชัดเจน
  • เก็บข้อมูลสำคัญใน GitHub Secrets และเข้าถึงด้วย `${{ secrets.NAME }}`
  • ปรับใช้ cache, timeout, และการแจ้งเตือนเพื่อเพิ่มประสิทธิภาพและความปลอดภัย

ทำตามแนวทางเหล่านี้ คุณจะได้ pipeline CI/CD ที่เสถียร รองรับการพัฒนาอย่างต่อเนื่องและลดความเสี่ยงจากการ deploy ด้วยมือ.

แชร์บทความนี้:

ชอบบทความแบบนี้?

สมัคร AI Automate Weekly Newsletter — รับเคล็ดลับ AI + how-to ใหม่
ทุกสัปดาห์ตรงถึง inbox ฟรี ไม่มีสแปม

แหล่งข่าวต้นฉบับ

ชื่อต้นฉบับ
วิธีตั้งค่าและใช้ GitHub Actions เพื่อทำ CI/CD อัตโนมัติสำหรับโครงการของคุณ
ผู้เขียน
กองบรรณาธิการ Thai Tech News
แหล่ง
บทความต้นฉบับ Thai Tech News · ช่วยร่างด้วย AI, เรียบเรียง/ตรวจสอบโดยกองบรรณาธิการ
วันที่เผยแพร่
24 มิถุนายน 2569 เวลา 17:51

Related

บทความที่เกี่ยวข้อง

วิธีสร้างและจัดการฐานข้อมูล SQLite บนมือถือด้วยแอปฟรีอย่างง่ายดายGrowth
24 มิถุนายน 2569 เวลา 12:30

วิธีสร้างและจัดการฐานข้อมูล SQLite บนมือถือด้วยแอปฟรีอย่างง่ายดาย

การใช้ SQLite บนมือถือทำให้คุณเก็บข้อมูลแบบออฟไลน์ได้อย่างปลอดภัยและเร็ว บทความนี้จะสอนวิธี **สร้าง** และ **จัดการ** ฐานข้อมูล SQLite ด้วยแอปฟรีที่ติดตั้งง่าย ไม่ต้องเขียนโค้ดเลย

ต้นฉบับ TTN · ร่างด้วย AI ตรวจโดยบรรณาธิการ5 นาที
วิธีใช้ GitHub Copilot เพื่อเพิ่มประสิทธิภาพการเขียนโค้ดใน VS Codeอย่างมืออาชีพGrowth
24 มิถุนายน 2569 เวลา 11:00

วิธีใช้ GitHub Copilot เพื่อเพิ่มประสิทธิภาพการเขียนโค้ดใน VS Codeอย่างมืออาชีพ

GitHub Copilot คือ AI‑assistant ที่ช่วยเขียนโค้ดโดยอัตโนมัติใน VS Code โดยใช้โมเดลภาษาใหญ่ของ OpenAI คุณจะได้โค้ดที่ครบถ้วน ลดเวลาตรวจสอบบั๊ก และเพิ่มความเร็วของการพัฒนา

ต้นฉบับ TTN · ร่างด้วย AI ตรวจโดยบรรณาธิการ5 นาที
วิธีใช้ Microsoft Power Automate Desktop เพื่อสร้างการทำงานอัตโนมัติบนคอมพิวเตอร์ Windows อย่างมืออาชีพGrowth
23 มิถุนายน 2569 เวลา 18:30

วิธีใช้ Microsoft Power Automate Desktop เพื่อสร้างการทำงานอัตโนมัติบนคอมพิวเตอร์ Windows อย่างมืออาชีพ

Power Automate Desktop (PAD) เป็นเครื่องมือของ Microsoft ที่ช่วยให้คุณสร้าง **workflow** อัตโนมัติบน Windows ได้โดยไม่ต้องเขียนโค้ด ยิ่งคุณเข้าใจโครงสร้างของ PAD มากเท่าไหร่ การทำงานอัตโนมัติก็ยิ่งเร็…

ต้นฉบับ TTN · ร่างด้วย AI ตรวจโดยบรรณาธิการ5 นาที
วิธีตั้งค่าและใช้ฟีเจอร์ Shortcuts บน iPhone เพื่อทำงานอัตโนมัติหลายขั้นตอนอย่างง่ายดายGrowth
23 มิถุนายน 2569 เวลา 12:30

วิธีตั้งค่าและใช้ฟีเจอร์ Shortcuts บน iPhone เพื่อทำงานอัตโนมัติหลายขั้นตอนอย่างง่ายดาย

การใช้ **Shortcuts** บน iPhone ช่วยให้คุณทำงานหลายขั้นตอนได้อัตโนมัติ เพียงไม่กี่สัมผัสหรือเสียงสั่งงาน บทความนี้จะพาไปตั้งค่าและสร้าง Shortcut ที่ทำงานได้จริงในชีวิตประจำวัน

ต้นฉบับ TTN · ร่างด้วย AI ตรวจโดยบรรณาธิการ5 นาที
คัดลอกลิงก์แล้ว!