วิธีตั้งค่า CI / CD อัตโนมัติสำหรับแอป Flutter ด้วย GitHub Actionsบนคลาวด์ฟรี

ที่มาภาพ: Unknown Source

วิธีตั้งค่า CI / CD อัตโนมัติสำหรับแอป Flutter ด้วย GitHub Actionsบนคลาวด์ฟรี

⚡ สรุป 30 วิ

การทำ **CI/CD** สำหรับแอป Flutter ช่วยให้โค้ดถูกตรวจสอบและปล่อยเวอร์ชันใหม่โดยอัตโนมัติ ลดความผิดพลาดจากขั้นตอน manual และเร่งเวลานำผลิตภัณฑ์สู่ผู้ใช้ได้เร็วขึ้น บทความนี้จะสอนวิธีตั้งค่า GitHub Actio…

บทนำ

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

Overview – ภาพรวม

GitHub Actions ให้คุณกำหนด workflow ที่ทำงานอัตโนมัติเมื่อเกิดเหตุการณ์เช่น push หรือ pull request เราจะสร้างไฟล์ workflow ที่ติดตั้ง Flutter, รัน unit test, build APK/AAB และส่งผลลัพธ์ไปยัง GitHub Artifacts

  • Workflow จะอยู่ในโฟลเดอร์ `.github/workflows` ของ repository
  • สามารถเลือก runner ฟรีจาก GitHub (ubuntu‑latest) หรือใช้ self‑hosted runner บน Google Cloud Free Tier
  • ผลลัพธ์ของ build จะถูกเก็บเป็น artifact เพื่อดาวน์โหลดหรือส่งต่อให้บริการอื่น

Prerequisites – สิ่งที่ต้องเตรียมก่อน

เพื่อเริ่มต้นใช้งาน GitHub Actions สำหรับ Flutter ต้องมีสิ่งเหล่านี้พร้อม

  • Repository บน GitHub ที่มีโค้ด Flutter อยู่แล้ว
  • Flutter SDK เวอร์ชันที่ต้องการ (ระบุใน workflow)
  • สิทธิ์ write permission ใน repository เพื่อให้ workflow สามารถอัปโหลด artifact ได้
  • หากต้องการใช้ Google Cloud Build หรือ Firebase App Distribution ต้องสร้าง Service Account Key และเก็บไว้เป็น secret

Step‑By‑Step – ขั้นตอนตั้งค่า CI/CD

1. สร้างไฟล์ workflow

```yaml name: Flutter CI/CD

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

jobs: build: runs-on: ubuntu-latest ```

  • **ขั้ นตอน 1: กำหนด trigger ให้ทำงานเมื่อมีการ push หรือเปิด pull request ไปยัง branch `main`

2. ติดตั้ง Flutter

```yaml steps:

  • name: Checkout code

uses: actions/checkout@v3

  • name: Set up Flutter

uses: subosito/flutter-action@v2 with: flutter-version: '3.13.0' ```

  • **ขั้ นตอน 2: ใช้ Action `subosito/flutter-action` เพื่อติดตั้ง Flutter เวอร์ชันที่กำหนด

3. ตรวจสอบโค้ดและรัน test

```yaml

  • name: Pub get

run: flutter pub get

  • name: Run unit tests

run: flutter test --no-pub ```

  • **ขั้ นตอน 3: ดึง dependencies แล้วรัน unit test เพื่อให้แน่ใจว่าโค้ดทำงานถูกต้อง

4. Build แอปสำหรับ Android

```yaml

  • name: Build APK

run: flutter build apk --release

  • name: Upload artifact

uses: actions/upload-artifact@v3 with: name: android-apk path: build/app/outputs/flutter-apk/app-release.apk ```

  • **ขั้ นตอน 4: สร้างไฟล์ APK เวอร์ชัน release แล้วอัปโหลดเป็น artifact

5. (Optional) Deploy ไปยัง Firebase App Distribution

```yaml

  • name: Upload to Firebase

uses: wzieba/Firebase-Distribution-Github-Action@v1 with: appId: ${{ secrets.FIREBASE_APP_ID }} token: ${{ secrets.FIREBASE_TOKEN }} file: build/app/outputs/flutter-apk/app-release.apk ```

  • **ขั้ นตอน 5: หากต้องการให้ทีมทดสอบอัตโนมัติ ให้ตั้งค่า Firebase App ID และ Token เป็น secret ใน repository

Tips – เคล็ดลับสำคัญ

อย่าลืมกำหนด secret อย่างปลอดภัยใน Settings > Secrets > Actions เพื่อป้องกันข้อมูลรหัสผ่านหรือ token ไม่ให้เปิดเผยต่อสาธารณะ
ควรใช้ `flutter pub outdated` ก่อน commit เพื่อตรวจสอบเวอร์ชัน dependency ที่ล้าสมัยและลดโอกาสเจอ error ใน CI

Comparison – ตัวเลือกคลาวด์ฟรีสำหรับ runner

Providerฟรี tierรองรับ Ubuntu runnerเพิ่มเติม
GitHub Actions2,000 นาที/เดือนใช่ไม่ต้องตั้งค่า server เอง
Google Cloud Build120 นาที/วันใช่ (via Docker)ต้องสร้าง service account
Azure Pipelines1,800 นาที/เดือนใช่รองรับ Windows/macOS เพิ่มเติม
  • GitHub Actions เหมาะกับโครงการขนาดเล็กถึงกลางที่ต้องการความสะดวกและไม่มีค่าใช้จ่ายเพิ่ม
  • Google Cloud Build ให้ประสิทธิภาพสูงเมื่อใช้ร่วมกับ Firebase แต่ต้องตั้งค่า service account และอาจเจอข้อจำกัดเรื่องเวลาการรัน

Summary – สรุปสำคัญ

  • ตั้งค่า workflow ใน `.github/workflows` เพื่อให้ CI/CD ทำงานอัตโนมัติบน Ubuntu runner ฟรีของ GitHub
  • ใช้ Action `subosito/flutter-action` เพื่อติดตั้ง Flutter เวอร์ชันที่ต้องการโดยไม่ต้องจัดการสภาพแวดล้อมเอง
  • รัน unit test, build APK/AAB แล้วเก็บเป็น artifact หรือส่งต่อไปยัง Firebase App Distribution ผ่าน secret ที่ปลอดภัย
  • เลือก runner ฟรีตามความต้องการ: GitHub Actions ให้ใช้งานง่ายที่สุด ส่วน Google Cloud Build เหมาะกับผู้ที่ใช้บริการของ Google อย่างเต็มรูปแบบ

**สิ่งที่ควรจำ: การตั้งค่า CI/CD อย่างถูกต้องช่วยให้ทีมพัฒนา Flutter ปลอดภัยจากข้อผิดพลาด manual, เร็วขึ้นในการส่งอัพเดท และประหยัดเวลาโดยใช้คลาวด์ฟรีอย่างมีประสิทธิภาพ.

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

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

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

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

ชื่อต้นฉบับ
วิธีตั้งค่า CI / CD อัตโนมัติสำหรับแอป Flutter ด้วย GitHub Actionsบนคลาวด์ฟรี
ผู้เขียน
กองบรรณาธิการ Thai Tech News
แหล่ง
บทความต้นฉบับ Thai Tech News · ช่วยร่างด้วย AI, เรียบเรียง/ตรวจสอบโดยกองบรรณาธิการ
วันที่เผยแพร่
7 กรกฎาคม 2569 เวลา 19:50

Related

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

วิธีสร้าง Dashboard แสดงเมตริกจาก Prometheus ด้วย Grafana บน Kubernetes อย่างปลอดภัยGrowth
31 กรกฎาคม 2569 เวลา 11:30

วิธีสร้าง Dashboard แสดงเมตริกจาก Prometheus ด้วย Grafana บน Kubernetes อย่างปลอดภัย

การสร้าง Dashboard เพื่อแสดงเมตริกจาก **Prometheus** ด้วย **Grafana** บน **Kubernetes** ไม่ได้เป็นเรื่องยาก หากเข้าใจขั้นตอนและหลักการด้านความปลอดภัยอย่างถี่ถ้วน บทความนี้จะพาคุณผ่านกระบวนการตั้งแต่เต…

ต้นฉบับ TTN · ร่างด้วย AI ตรวจโดยบรรณาธิการ9 นาที
วิธีตั้งค่าและใช้ SQLite Encryption Extension บน macOS อย่างปลอดภัยGrowth
30 กรกฎาคม 2569 เวลา 20:30

วิธีตั้งค่าและใช้ SQLite Encryption Extension บน macOS อย่างปลอดภัย

**SQLite Encryption Extension (SEE) คือส่วนขยายที่ให้ SQLite รองรับการเข้ารหัสข้อมูลโดยอัตโนมัติบนไฟล์ฐานข้อมูล การใช้งาน SEE บน macOS ต้องทำตามขั้นตอนตั้งค่าและคอมไพล์อย่างระมัดระวัง เพื่อป้องกันข้อม…

ต้นฉบับ TTN · ร่างด้วย AI ตรวจโดยบรรณาธิการ8 นาที
วิธีสร้าง Local Development Environment แบบ Isolated ด้วย VS Code Dev Containers บน macOS อย่างปลอดภัยGrowth
30 กรกฎาคม 2569 เวลา 19:00

วิธีสร้าง Local Development Environment แบบ Isolated ด้วย VS Code Dev Containers บน macOS อย่างปลอดภัย

การพัฒนาแบบ **Isolated** ช่วยให้โค้ดทำงานในสภาพแวดล้อมเดียวกันทุกเครื่องโดยไม่ต้องกังวลเรื่อง Dependency ที่แตกต่างกัน บน macOS เราสามารถใช้ **VS Code Dev Containers** ร่วมกับ Docker เพื่อสร้าง sandbo…

ต้นฉบับ TTN · ร่างด้วย AI ตรวจโดยบรรณาธิการ7 นาที
วิธีสร้าง Progressive Web App (PWA) ด้วย Vue.js ให้ทำงานออฟไลน์อย่างปลอดภัยGrowth
30 กรกฎาคม 2569 เวลา 11:30

วิธีสร้าง Progressive Web App (PWA) ด้วย Vue.js ให้ทำงานออฟไลน์อย่างปลอดภัย

**บทความนี้จะอธิบายวิธีสร้าง Progressive Web App (PWA) ด้วย Vue.js ให้ทำงานแบบออฟไลน์อย่างปลอดภัย**

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