วิธีตั้งค่า 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

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

วิธีตั้งค่าและใช้งาน Grafana กับ Prometheus บน Raspberry Pi เพื่อมอนิเตอร์ระบบแบบเรียลไทม์Growth
7 กรกฎาคม 2569 เวลา 19:00

วิธีตั้งค่าและใช้งาน Grafana กับ Prometheus บน Raspberry Pi เพื่อมอนิเตอร์ระบบแบบเรียลไทม์

การมอนิเตอร์ระบบแบบเรียลไทม์บน Raspberry Pi ไม่ต้องอาศัยเครื่องแม่ข่ายราคาแพง เพียงติดตั้ง **Prometheus** เป็นตัวเก็บเมตริกและ **Grafana** แสดงผลก็เพียงพอ บทความนี้จะสอนขั้นตอนตั้งค่า ตั้งค่าขั้นพื้นฐ…

ต้นฉบับ TTN · ร่างด้วย AI ตรวจโดยบรรณาธิการ9 นาที
วิธีติดตั้งและใช้งาน OpenAI Whisper บนเครื่อง PC เพื่อแปลงเสียงพูดเป็นข้อความแบบออฟไลน์Growth
7 กรกฎาคม 2569 เวลา 11:30

วิธีติดตั้งและใช้งาน OpenAI Whisper บนเครื่อง PC เพื่อแปลงเสียงพูดเป็นข้อความแบบออฟไลน์

OpenAI Whisper เป็นโมเดลแปลงเสียงพูดเป็นข้อความ (speech‑to‑text) ที่ให้ผลแม่นยำสูงและทำงานแบบออฟไลน์ได้บน PC ของคุณ ไม่ต้องพึ่งบริการคลาวด์ ลดความกังวลเรื่องข้อมูลส่วนบุคคลและการเชื่อมต่ออินเทอร์เน็ต…

ต้นฉบับ TTN · ร่างด้วย AI ตรวจโดยบรรณาธิการ8 นาที
วิธีตั้งค่าและใช้งาน Zero‑Trust Network Access (ZTNA) ด้วย Cloudflare Teams สำหรับการเชื่อมต่อระยะไกลอย่างปลอดภัยGrowth
6 กรกฎาคม 2569 เวลา 20:30

วิธีตั้งค่าและใช้งาน Zero‑Trust Network Access (ZTNA) ด้วย Cloudflare Teams สำหรับการเชื่อมต่อระยะไกลอย่างปลอดภัย

Zero‑Trust Network Access (ZTNA) เป็นแนวคิดที่ให้การเข้าถึงทรัพยากรไอทีโดยพิจารณาความเชื่อถือจากตัวผู้ใช้และอุปกรณ์ ไม่ใช่ตำแหน่งทางกายภาพ การนำ ZTNA มาผสานกับ **Cloudflare Teams** จะทำให้การเชื่อมต่อ…

ต้นฉบับ TTN · ร่างด้วย AI ตรวจโดยบรรณาธิการ5 นาที
วิธีตั้งค่าและใช้งาน Syncthing เพื่อซิงค์ไฟล์ข้ามอุปกรณ์แบบปลอดภัยบนทุกระบบปฏิบัติการGrowth
6 กรกฎาคม 2569 เวลา 19:00

วิธีตั้งค่าและใช้งาน Syncthing เพื่อซิงค์ไฟล์ข้ามอุปกรณ์แบบปลอดภัยบนทุกระบบปฏิบัติการ

Syncthing เป็นซอฟต์แวร์โอเพ่นซอร์สที่ทำหน้าที่เป็นระบบไฟล์‑ซิงค์แบบ peer‑to‑peer (P2P) โดยไม่ต้องพึ่งเซิร์ฟเวอร์กลาง ทุกอุปกรณ์จะเชื่อมต่อโดยตรงและส่งข้อมูลผ่านการเข้ารหัสระดับ TLS 1.3 ทำให้ข้อมูลของค…

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