เวิร์กช็อป›สร้างแอป & โค้ด
6 · สร้างแอป & โค้ด
รัน Claude ใน CI/CD
ใช้ Claude Code แบบ headless อัตโนมัติ
ความคืบหน้าเวิร์กช็อป
รู้ใน 30 วิ
claude -p คือโหมด headless รันแบบไม่ต้องนั่งคุย เอาไปใส่ใน CI/CD ได้ ให้ Claude รีวิว PR หรือเขียนเทสอัตโนมัติทุกครั้งที่ push
claude -p รันแบบ headlessไม่ต้องนั่งคุย รับ output ตรงCI/CD เรียกเองทุก pushดู Claude รันแบบ headless
สั่งครั้งเดียวจากบรรทัดคำสั่ง รับผลกลับมาเลย
ดู Claude Code ทำงาน
คุณclaude -p "รีวิว diff ล่าสุด หาบั๊กและความเสี่ยง สรุปสั้น ๆ" --output-format json
- ›รันแบบ
-pไม่เปิดหน้าจอคุย รับ prompt เดียวแล้วทำงานเลย - ›อ่าน diff ล่าสุดในโปรเจกต์ ไล่หาจุดเสี่ยงและบั๊ก
- ›สรุปผลออกมาเป็น JSON ตาม
--output-formatที่สั่ง - ›ส่งผลกลับทาง stdout ให้ขั้นถัดไปใน pipeline เอาไปใช้ต่อ
- ✓เสร็จ CI เอาผลไปคอมเมนต์ใน PR หรือปัดตกได้อัตโนมัติ
headless ต่างจากปกติยังไง
3 จุดที่ทำให้รันใน pipeline ได้
1
ไม่ต้องโต้ตอบ
ใส่ -p แล้วส่ง prompt เดียว Claude ทำงานจนจบเองโดยไม่ถามกลับ เหมาะกับเครื่องรัน
2
output อ่านด้วยเครื่องได้
ใส่ --output-format json เพื่อให้สคริปต์ดึงผลไปใช้ต่อได้ ไม่ใช่ข้อความสำหรับคนอ่านเฉย ๆ
3
คุมสิทธิ์ชัด
ใช้ --allowedTools จำกัดว่าให้ทำอะไรได้บ้าง และตั้ง API key ผ่าน environment variable
headless เหมาะกับงานที่ เกิดซ้ำทุกครั้งโดยอัตโนมัติ เช่น รีวิวทุก PR หรือสร้างเทสทุก push ส่วนงานที่ต้องคิดโต้ตอบไปมา ใช้โหมดคุยปกติดีกว่า
ลองเลยจับมือทำ
- ลองในเครื่องก่อน รันใน terminal ที่โฟลเดอร์โปรเจกต์
claude -p "สรุปว่าโปรเจกต์นี้ทำอะไร" --output-format json - ลองแบบมี diff จริง
git add -Aแล้วclaude -p "รีวิวการเปลี่ยนแปลงที่ stage ไว้ หาบั๊กและความเสี่ยง" - เอาขึ้น CI ให้ Claude Code เขียน workflow ให้ด้วย Prompt นี้ (รันในโหมดคุยปกติ)พิมพ์ Prompt นี้
ช่วยสร้าง GitHub Actions workflow ที่ .github/workflows/claude-review.yml ให้หน่อย ทุกครั้งที่เปิด pull request ให้รัน claude -p แบบ headless เพื่อรีวิวโค้ดที่เปลี่ยน แล้วเอาผลไปคอมเมนต์ใน PR ใช้ ANTHROPIC_API_KEY จาก secrets และจำกัดเครื่องมือด้วย --allowedTools ให้ปลอดภัย - ไปที่ GitHub ตั้งค่า repo เพิ่ม secret ชื่อ
ANTHROPIC_API_KEYใน Settings > Secrets and variables > Actions - เปิด PR ทดสอบสักอัน แล้วดูในแท็บ Actions ว่า Claude รันและคอมเมนต์รีวิวให้อัตโนมัติ
ลองใช้ Prompt นี้ (รันในเทอร์มินัล)
claude -p "อ่าน diff ที่ stage ไว้ด้วย git แล้วตรวจว่ามีบั๊ก ช่องโหว่ หรือโค้ดที่ลืมเอาออกไหม ตอบเป็นรายการสั้น ๆ ถ้าไม่มีปัญหาให้บอกว่า PASS" --output-format json --allowedTools "Bash(git diff:*)"
สรุปเวิร์กช็อป
- claude -p คือโหมด headless รันด้วย prompt เดียวไม่ต้องนั่งคุย เหมาะกับการรันใน CI/CD
- ใช้ --output-format json ให้สคริปต์อ่านผลต่อได้ และ --allowedTools เพื่อคุมสิทธิ์ให้ปลอดภัย
- เก็บ ANTHROPIC_API_KEY ไว้ใน secrets ของ CI แล้วให้ Claude รีวิว PR หรือเขียนเทสอัตโนมัติทุก push
แบบทดสอบท้ายเวิร์กช็อป
ลองตอบดู แล้วระบบจะเฉลยให้ทันที
ข้อ 1.แฟล็กไหนทำให้ Claude Code รันแบบ headless (ไม่เปิดหน้าจอโต้ตอบ)?
เฉลย: claude -p (print mode) รับ prompt เดียวแล้วทำงานจนจบโดยไม่ต้องโต้ตอบ เหมาะกับการรันอัตโนมัติ
ข้อ 2.ทำไมต้องใช้ --output-format json ในงาน CI?
เฉลย: JSON เป็นรูปแบบที่เครื่องอ่านได้ ทำให้ขั้นถัดไปใน pipeline นำผลของ Claude ไปประมวลผลต่อได้
ข้อ 3.ควรเก็บ ANTHROPIC_API_KEY ไว้ที่ไหนเมื่อรันใน GitHub Actions?
เฉลย: เก็บ API key เป็น secret ของ repo เพื่อความปลอดภัย ห้ามเขียนค่าจริงลงในไฟล์ที่ commit ขึ้น git