เนื่องจากมีคนชวนเล่น CircleCI เมื่อต้นเดือนที่ผ่านมา เพิ่งจะได้มาลองเล่นพบว่า CircleCI ทำอะไรได้หลายอย่างมากกว่า เครื่องมือ CI/CD เดิมๆ ที่มีอยู่ วิธีการใช้งานก็ง่ายมากๆ เพียงแค่เชื่อม repository ของโครงการของคุณที่ต้องการใช้คู่กับ CircleCI จากนั้นก็เขียน config ในรูปแบบไฟล์ yaml สั่ง push code ใหม่เข้า repository เท่านี้ก็เรียบร้อยแล้ว CircleCI จะทำหน้าที่ของมันโดยอัตโนมัติ CircleCI รองรับการทำ CI/CD ได้หลายภาษา เช่น Ruby/Rails, Python, Node.js, PHP, Java, Haskell นอกจากนี้ยังรองรับ Mobile Platform อย่าง Android, iOS และรองรับการทำงานกับ Docker Container ด้วย

อันดับแรก สมัครสมาชิก CircleCI กันก่อนที่ https://circleci.com

จากนั้น clone หรือ fork ตัวอย่างที่ anoochit/docker-elasticsearch จากนั้นผูก repository กับ GitHub ของคุณ เลือก repository ที่ต้องการ

เพิ่ม Environment Variable ใน Project Settings > Environment variables เพิ่มค่า DOCKER_EMAIL, DOCKER_USER, DOCKER_PASS ลงไปเพื่อใช้ในการ push ไปยัง Docker Hub

CircleCI จะอ่าน build step จากไฟล์ circleci.yml ซึ่งไฟล์นี้จะบรรจุ config ต่างๆ ที่เราจะให้ CircleCI ทำงานให้ โดยมี config ต่างๆ ดังนี้

  • machine: จัดการคุณสมบัติของ VM ที่คุณต้องการ
  • checkout: สั่ง checking out และ clone git repo
  • dependencies: ตั้งค่า dependencies ตามภาษาที่คุณใช้ใน project นั้นๆ
  • database: เตรียมฐานข้อมูลสำหรับการทดสอบ
  • test: สั่ง run test
  • deployment: สั่ง deploy code ไปยังเว็บเซิร์ฟเวอร์

จากนั้นมาลองดู circleci.yml กัน แก้ไข circleci.yml ให้เข้าใจง่ายมากขึ้นให้ build step มีขั้นตอนง่ายๆ ดังนี้

  • machine กำหนดส่วน service เป็น docker
  • dependencies ให้สั่ง build image จาก repository
  • test ทดสอบ run แล้วรอตรวจสอบว่า elasticsearch ใน port 9200 ทำงานหรือไม่
  • deployment หากทดสอบผ่าน จึงสั่ง push ขึ้น Docker Hub

แก้ไข circleci.yml ให้เป็นข้อมูลของคุณ จากนั้น commit และ push กลับไปที่ repository คุณจะพบว่า CircleCI ทำงานทันทีโดยทำงานตาม build step ที่เรากำหนด

เขียวผ่านตลอด

พร้อม push ขึ้น Docker Hub เรียบร้อย

Comments are closed.