
ที่มาภาพ: 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 Token | Settings Secrets Actions | `${{ secrets.MY_TOKEN }}` |
| SSH Key | Settings 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
- URL ต้นฉบับ
- https://thaitech.news/articles/growth-600861



