CircleCI: พื้นฐาน orbs และการผสานรวมอย่างต่อเนื่อง

ผู้แต่ง: IT Sectr เผยแพร่เมื่อ: 2026-04-13 เวลาอ่าน: 8 นาที

CircleCI เป็นแพลตฟอร์ม CI/CD บนคลาวด์สำหรับทำให้การสร้าง การทดสอบ และการปรับใช้ซอฟต์แวร์เป็นอัตโนมัติ รวมถึงแอปพลิเคชันมือถือสำหรับ iOS และ Android ตามข้อมูลจาก CircleCI, 2024 แพลตฟอร์มประมวลผล มากกว่า 30 ล้านบิลด์ ต่อเดือนและมีสถาปัตยกรรมที่ไม่เหมือนใครซึ่งใช้ orbs — แพ็กเกจการกำหนดค่าพร้อมใช้สำหรับเครื่องมือยอดนิยม

ประเด็นสำคัญ

  • CircleCI — แพลตฟอร์ม CI/CD บนคลาวด์ที่รองรับการบิลด์บนมือถือ Docker และสภาพแวดล้อม macOS
  • Orb — แพ็กเกจการกำหนดค่า YAML พร้อมใช้ที่ช่วยให้การตั้งค่าเครื่องมือและบริการยอดนิยมง่ายขึ้น
  • Executor — สภาพแวดล้อมการทำงานของ job: Docker image, Linux VM, macOS หรือ Windows
  • Parallelism — การแบ่งการทดสอบไปยังคอนเทนเนอร์หลายตัวเพื่อการทำงานแบบขนาน
  • Caching เก็บรักษา dependencies ระหว่างรัน ทำให้เวลาในการบิลด์ลดลง 3–5 เท่า

CircleCI คืออะไร?

CircleCI เป็นแพลตฟอร์ม CI/CD บนคลาวด์ที่ก่อตั้งในปี 2011 ระบบอนุญาตให้คุณอธิบายไปป์ไลน์ในไฟล์ YAML .circleci/config.yml และรันในคอนเทนเนอร์ที่แยกเดี่ยวหรือเครื่องเสมือน CircleCI รองรับภาษายอดนิยมและแพลตฟอร์มทั้งหมด รวมถึง Android, iOS, Flutter และ React Native

สำหรับการพัฒนาแอปมือถือ CircleCI มี macOS executors สำหรับบิลด์ iOS พร้อม Xcode ที่ติดตั้งไว้ล่วงหน้า Linux executors สำหรับ Android พร้อม Android SDK รวมถึงการแคชสำหรับ Gradle และ CocoaPods คุณสมบัติสำคัญ คือ orbs ซึ่งช่วยให้คุณเชื่อมต่อการกำหนดค่าพร้อมใช้ด้วยบรรทัดเดียว: orb: android, orb: ios, orb: flutter CircleCI จะตรวจจับประเภทโปรเจกต์โดยอัตโนมัติและแนะนำการกำหนดค่าเทมเพลตเมื่อเชื่อมต่อ repository ครั้งแรก

แพลตฟอร์มรองรับการเข้าถึง SSH ไปยังคอนเทนเนอร์ที่กำลังทำงานเพื่อการดีบัก — คุณสมบัติที่มีประโยชน์สำหรับการแก้ไขปัญหาบิลด์ที่ล้มเหลว CircleCI CLI ช่วยให้คุณตรวจสอบและรันการกำหนดค่าในเครื่อง จัดการ orbs และดูบันทึก แพลตฟอร์มผสานรวมกับ GitHub, GitHub Enterprise, Bitbucket และ GitLab ผ่านระบบ webhook

สถาปัตยกรรม CircleCI: Orbs, Executors และ Contexts

สถาปัตยกรรม CircleCI ประกอบด้วยสามระดับ: Pipeline, Workflow และ Job Pipeline คือกระบวนการหลักที่ถูกทริกเกอร์เมื่อมีการ commit Pipeline ประกอบด้วย Workflows — กราฟของ Jobs ที่สามารถรันแบบตามลำดับหรือขนาน แต่ละ Job รันบน Executor — สภาพแวดล้อมที่มี image เฉพาะ Workflow สามารถรวม approval gates — การยืนยันด้วยตนเองก่อนการปรับใช้

Orbs คือแพ็กเกจการกำหนดค่า YAML ที่ใช้ซ้ำได้ซึ่งแจกจ่ายผ่าน CircleCI Orb Registry Orb สามารถประกอบด้วย jobs, commands, executors และตัวอย่าง Orbs ยอดนิยม: android, ios, flutter, firebase, slack ตัวอย่างเช่น การเพิ่ม android orb จะแทนที่การกำหนดค่า 50+ บรรทัดด้วยบรรทัดเดียว CircleCI CLI ช่วยให้คุณสร้าง ทดสอบ และเผยแพร่ orbs ของคุณเองเพื่อทำให้ไปป์ไลน์เป็นมาตรฐานทั่วทั้งองค์กร

ประเภทของ Executors

Executorเหมาะสำหรับสภาพแวดล้อมการบิลด์
DockerAndroid, Backendคอนเทนเนอร์ Linux
macOSiOS, macOSVM macOS พร้อม Xcode
MachineDocker-in-DockerVM Ubuntu
Windows.NET, WinUIWindows Server

Contexts คือชุดตัวแปรสภาพแวดล้อมที่มีชื่อซึ่งพร้อมใช้งานในระดับองค์กร ตัวอย่างเช่น บริบท app-store-credentials ประกอบด้วย Apple ID และรหัสผ่านสำหรับเผยแพร่ใน App Store ซึ่งช่วยให้การจัดการ secrets ระหว่างโปรเจกต์ง่ายขึ้นโดยไม่ต้องทำซ้ำ

การตั้งค่า CircleCI สำหรับโปรเจกต์ Android และ iOS

สำหรับโปรเจกต์ Android CircleCI ใช้ Docker image cibuilds/android กับ Android SDK เวิร์กโฟลว์ทั่วไป ประกอบด้วย: checkout, การติดตั้ง JDK, การแคช Gradle, การบิลด์, การรันทดสอบ สำหรับ iOS จำเป็นต้องมี macOS executor พร้อม Xcode และการตั้งค่า code signing เมื่อเชื่อมต่อครั้งแรก CircleCI จะตรวจจับประเภทโปรเจกต์โดยอัตโนมัติและสร้างการกำหนดค่าพื้นฐานพร้อมการตั้งค่าที่แนะนำ

สำหรับโปรเจกต์ Flutter CircleCI มี orb circleci/flutter ซึ่งรวม executors พร้อม Flutter SDK ที่ติดตั้งไว้ล่วงหน้าสำหรับ Linux และ macOS Orb รองรับ การบิลด์สำหรับทั้งสองแพลตฟอร์ม การแคช pub-cache และการรันทดสอบ การตั้งค่าเพียงแค่ระบุเวอร์ชัน Flutter และคำสั่งบิลด์ สำหรับเวอร์ชัน Flutter หรือ Dart ที่กำหนดเอง สามารถใช้ Docker image กับ SDK ที่จำเป็นได้ Flutter orb ยังรองรับตัวเลือกขั้นสูง — ตัวอย่างเช่น การวิเคราะห์โค้ดผ่าน dart analyze ก่อนการบิลด์

Android Orb — เริ่มต้นอย่างรวดเร็ว

Android orb จาก CircleCI มี jobs พร้อมใช้: build-and-test, deploy-to-play-store Orb จะกำหนดค่า สภาพแวดล้อม การแคช และการลงชื่อโดยอัตโนมัติ หลังจากเพิ่ม orb แล้ว คุณเพียงแค่ระบุเวอร์ชัน SDK และคำสั่งบิลด์

การบิลด์ iOS ด้วย macOS Executor

สำหรับการบิลด์ iOS executor จะถูกตั้งเป็น macos พร้อมเวอร์ชัน Xcode CircleCI มี images พร้อม Xcode 14, 15 และ 16 หลังจาก checkout โค้ดจะถูกคอมไพล์ผ่าน xcodebuild และทดสอบบน simulator การลงนามโค้ดถูกกำหนดค่าผ่าน fastlane match หรือการติดตั้งใบรับรองด้วยตนเอง

การแคชและการทำงานแบบขนาน

การแคชเป็นองค์ประกอบสำคัญของประสิทธิภาพใน CircleCI กลไกแคช จะบันทึกไดเรกทอรีระหว่างรันเวิร์กโฟลว์โดยใช้คีย์ สำหรับ Gradle จะแคช ~/.gradle; สำหรับ CocoaPods — Pods/; สำหรับ npm/SPM — node_modules/.build เมื่อไฟล์ lock เปลี่ยนแปลง แคชจะถูกอัปเดตโดยอัตโนมัติ CircleCI รองรับนโยบายแยก: save_cache สามารถเลื่อนได้ (when: always) ในขณะที่ restore_cache เป็นข้อบังคับ

การทำงานแบบขนานร่วมกับ resource class ช่วยให้ปรับแต่งประสิทธิภาพการบิลด์ได้อย่างละเอียด Resource class กำหนด CPU และ RAM สำหรับคอนเทนเนอร์: small (1 CPU, 2 GB), medium (2 CPU, 4 GB), medium+ (3 CPU, 5 GB) และ large (4 CPU, 8 GB) สำหรับการบิลด์ iOS ด้วย Xcode แนะนำให้ใช้ macOS executor ที่มี resource class medium หรือ larger — การคอมไพล์โค้ด Swift ต้องใช้ทรัพยากรจำนวนมาก

การทำงานแบบขนานแบ่งการทดสอบไปยังหลายคอนเทนเนอร์ ลดเวลาในการรัน ตัวอย่างเช่น: parallelism: 4 รันทดสอบใน 4 คอนเทนเนอร์แบบขนาน CircleCI จะกระจายไฟล์ทดสอบไปยังคอนเทนเนอร์โดยอัตโนมัติ คำสั่ง circleci tests glob รวบรวมรายการทดสอบ และ circleci tests split จะกระจายอย่างเท่าเทียมกัน

ตัวอย่างการแคช Gradle

yaml
- restore_cache:
    keys:
      - v1-gradle-{{ checksum "build.gradle" }}
      - v1-gradle-

- run: ./gradlew assembleDebug

- save_cache:
    key: v1-gradle-{{ checksum "build.gradle" }}
    paths:
      - ~/.gradle/caches
      - ~/.gradle/wrapper

ตัวอย่างการกำหนดค่า .circleci/config.yml

มาดูการกำหนดค่า CircleCI แบบสมบูรณ์สำหรับโปรเจกต์ Android ที่มีสอง jobs: build และ test การกำหนดค่าประกอบด้วย Docker executor พร้อม Android SDK การแคช Gradle และการรันทดสอบแบบขนาน Artifacts จะถูกบันทึกไว้สำหรับดาวน์โหลด เวิร์กโฟลว์ build-and-test จะรันทั้งสอง jobs ทุกครั้งที่มีการ push ไปยัง branch หลัก

yaml
version: 2.1

orbs:
  android: circleci/android@2.5.0

jobs:
  build:
    executor: android/default
    steps:
      - checkout
      - android/restore-gradle-cache
      - run: ./gradlew assembleRelease
      - android/save-gradle-cache
      - store_artifacts:
          path: app/build/outputs/apk/release
      - store_test_results:
          path: app/build/reports/tests

  test:
    executor: android/default
    parallelism: 4
    steps:
      - checkout
      - android/restore-gradle-cache
      - run:
          command: |
            cd app
            ./gradlew test

workflows:
  version: 2
  build-and-test:
    jobs:
      - build
      - test

Orbs: โซลูชัน CI/CD พร้อมใช้

เมื่อเลือกระหว่าง CircleCI และทางเลือกอื่น — หากทีมของคุณใช้ GitHub GitHub Actions อาจเป็นตัวเลือกที่ง่ายกว่า CircleCI เหมาะสำหรับทีมที่ต้องการการรันทดสอบแบบขนานที่ยืดหยุ่น การกำหนดค่าสภาพแวดล้อม executor แบบกำหนดเอง และสถิติการบิลด์โดยละเอียด CircleCI Insights มีแดชบอร์ดพร้อมเมตริกประสิทธิภาพไปป์ไลน์: เวลาบิลด์เฉลี่ย แนวโน้ม และจุดคอขวด Insights ช่วยระบุ jobs ที่ใช้เวลานานและปรับให้เหมาะสม CircleCI API ช่วยให้คุณจัดการไปป์ไลน์โดยทางโปรแกรม ทริกเกอร์บิลด์ และรับเมตริก

สำหรับการจัดการ secrets อย่างปลอดภัย CircleCI รองรับ Contexts — ชุดตัวแปรสภาพแวดล้อมที่มีชื่อในระดับองค์กร Contexts ได้รับการป้องกัน โดยการเข้าถึงตามบทบาท: เฉพาะทีมที่กำหนดเท่านั้นที่สามารถใช้บริบทเฉพาะได้ ตัวอย่างเช่น บริบท production-deploy ประกอบด้วยคีย์ App Store Connect และเข้าถึงได้เฉพาะนักพัฒนาหลักเท่านั้น เมื่อรวมกับ approval gates จะสร้างระบบความปลอดภัย CI/CD ที่ครอบคลุม

CircleCI Orb Registry มีแพ็กเกจพร้อมใช้หลายร้อยรายการสำหรับงาน CI/CD ต่าง ๆ สำหรับการพัฒนาแอปมือถือ orbs หลักรวมถึง: circleci/android, circleci/ios, circleci/flutter, laurencerussell/firebase-app-distribution แต่ละ orb มีเวอร์ชันและเอกสาร Orbs สามารถเป็นสาธารณะ (ทุกคนเข้าถึงได้) หรือส่วนตัว (เฉพาะองค์กรของคุณ)

การใช้ orbs ช่วยลดการกำหนดค่าได้ 5–10 เท่า ตัวอย่างเช่น orb circleci/android มี executor android/default พร้อม SDK ที่ติดตั้งไว้ล่วงหน้าและคำสั่ง restore-gradle-cache, save-gradle-cache orb circleci/ios รวม executor พร้อม Xcode และคำสั่งสำหรับการลงนามโค้ดผ่าน fastlane Orbs สามารถรวมกันได้อย่างง่ายดาย: เพิ่ม android orb สำหรับบิลด์และ slack orb สำหรับการแจ้งเตือน

CircleCI ยังมีการสนับสนุนรายงานการทดสอบในตัว Store_test_results จะแยกวิเคราะห์และแสดงผลการทดสอบจาก JUnit, XCTest และรูปแบบอื่น ๆ โดยอัตโนมัติ สำหรับโปรเจกต์มือถือ นี่หมายถึงการดูการทดสอบที่ล้มเหลว แนวโน้มเวลารัน และประวัติความเสถียรของการบิลด์จากศูนย์กลาง ซึ่งช่วยลดความซับซ้อนในการบำรุงรักษาคุณภาพโค้ด

ตัวอย่างกับ iOS Orb

yaml
orbs:
  ios: circleci/ios@2.0.0

jobs:
  build-and-test:
    executor: ios/default
    steps:
      - checkout
      - ios/install-dependencies
      - ios/build-and-test

การเผยแพร่ orb แบบกำหนดเอง สามารถทำได้ผ่าน CircleCI CLI คำสั่ง circleci orb create และ circleci orb publish อัปโหลด orb ไปยัง registry ซึ่งมีประโยชน์สำหรับการทำให้ CI/CD เป็นมาตรฐานภายในองค์กร — สร้างครั้งเดียว ใช้ในทุกโปรเจกต์

คำถามที่พบบ่อย

CircleCI มีค่าใช้จ่ายเท่าไหร่?

CircleCI เสนอ แผนฟรี ที่มี 6000 นาทีต่อเดือนสำหรับหนึ่งคอนเทนเนอร์ Performance Plan ($30/เดือน) รวม 10 jobs แบบขนานและ 14,000 นาที Scale Plan — ราคาแบบกำหนดเองพร้อมการทำงานแบบขนานไม่จำกัด

orbs ใน CircleCI คืออะไร?

Orbs คือ แพ็กเกจการกำหนดค่า YAML ที่ใช้ซ้ำได้ ซึ่งแจกจ่ายผ่าน registry อย่างเป็นทางการ ประกอบด้วย jobs, commands และ executors พร้อมใช้สำหรับเครื่องมือและแพลตฟอร์มยอดนิยม

CircleCI รองรับการบิลด์ iOS หรือไม่?

ใช่ CircleCI รองรับ macOS executor พร้อม Xcode ที่ติดตั้งไว้ล่วงหน้า (เวอร์ชัน 14, 15, 16) มี images สำหรับ iOS 17 และ 18, watchOS และ tvOS การลงนามโค้ดถูกกำหนดค่าผ่าน fastlane match หรือด้วยตนเอง

การรันทดสอบแบบขนานใน CircleCI ทำงานอย่างไร?

ระบุ parallelism: N ใน job — CircleCI จะแบ่งการทดสอบไปยัง N คอนเทนเนอร์ คำสั่ง circleci tests split จะกระจายการทดสอบอย่างเท่าเทียมกัน การทดสอบจะรันแบบขนาน ลดเวลาทั้งหมดตามสัดส่วนของจำนวนคอนเทนเนอร์

CircleCI แตกต่างจาก GitHub Actions อย่างไร?

CircleCI มี executors ที่ยืดหยุ่นกว่า (Docker, macOS, Machine, Windows) ระบบ orb ขั้นสูง การแบ่งการทดสอบแบบขนานในตัว และ artifacts การบิลด์โดยละเอียด GitHub Actions เหนือกว่าในการผสานรวมกับ GitHub และความเรียบง่าย

สรุป

  • CircleCI — แพลตฟอร์ม CI/CD บนคลาวด์พร้อม executors Docker, macOS และ Windows สำหรับโปรเจกต์มือถือ
  • Orbs — แพ็กเกจการกำหนดค่า YAML พร้อมใช้ที่ช่วยลดการตั้งค่าไปป์ไลน์ได้ 5–10 เท่า
  • Executor กำหนดสภาพแวดล้อมการทำงาน — Docker สำหรับ Android, VM macOS สำหรับ iOS, Machine สำหรับ Docker-in-Docker
  • Parallelism แบ่งการทดสอบไปยังหลายคอนเทนเนอร์ ลดเวลาในการรันตามสัดส่วน
  • Caching ผ่าน restore_cache และ save_cache ช่วยเร่งการบิลด์ 3–5 เท่าด้วยการกำหนดค่าคีย์ที่เหมาะสม
  • Contexts — การจัดเก็บ secrets ที่ปลอดภัยในระดับองค์กรพร้อมการเข้าถึงข้ามโปรเจกต์
  • iOS orb และ Android orb มี jobs พร้อมใช้สำหรับการสร้าง ทดสอบ และปรับใช้แอปพลิเคชันมือถือ

เราจะพัฒนาแอปพลิเคชันบนมือถือแบบครบวงจร

IT Sectr สร้างแอปพลิเคชัน iOS และ Android สำหรับสตาร์ทอัพและธุรกิจตั้งแต่ปี 2017 เราจะให้คำแนะนำและเสนอวิธีแก้ปัญหาที่ดีที่สุดแก่คุณ

ปรึกษาโครงการ

อ่านเพิ่มเติม