TypeScript / Type Check (ตรวจสอบ Type ของโค้ด)
รันคำสั่งตรวจ type เช่น tsc --noEmit, mypy, pyright หรือ flow โดยไม่รันชุดทดสอบ
การอ้างอิง (Reference): loha/type-check@v1
หมวดหมู่: Test & Lint (การทดสอบและตรวจโค้ด)
รันไทม์ (Runtime): docker.io/library/node:20-alpine (รันแบบ non-root, ตรึงเวอร์ชันด้วย digest ที่ Node 20)
สัญญาอนุญาต (License): Apache-2.0
ควรใช้เมื่อ
ใช้ร่วมกับ run-lint และ run-tests เพื่อแยกขั้นตอนการตรวจสอบ static type ออกจากการทดสอบ runtime ซึ่งจะช่วยให้เห็นสาเหตุของข้อผิดพลาดได้อย่างเจาะจงและรวดเร็ว
พารามิเตอร์
| พารามิเตอร์ | ชนิด | ค่าเริ่มต้น | จำเป็น | คำอธิบาย |
|---|---|---|---|---|
CHECK_COMMAND | string | npx tsc --noEmit | ไม่ | คำสั่งตรวจสอบ type ที่ต้องการรัน เช่น npx tsc --noEmit หรือ mypy . |
WORKING_DIRECTORY | string | . | ไม่ | ไดเรกทอรีทำงานของ task โดยคิดเทียบจาก root ของ workspace |
CHECK_IMAGE | string | docker.io/library/node@sha256:fb4cd12c85ee03686f6af5362a0b0d56d50c58a04632e6c0fb8363f609372293 | ไม่ | คอนเทนเนอร์อิมเมจที่ติดตั้งตัวตรวจ type พร้อมใช้งาน |
FAIL_ON_ERROR | enum: true, false | true | ไม่ | กำหนดให้ task ล้มเหลวเมื่อคำสั่งพบข้อผิดพลาด; หากตั้งเป็น false จะเป็นโหมดรายงานผลอย่างเดียว |
พื้นที่ทำงาน (Workspaces)
source(จำเป็น): เชื่อมโยงจาก pipeline workspacesource
ผลลัพธ์ (Results)
| ผลลัพธ์ (Result) | คำอธิบาย |
|---|---|
CHECK_RESULT | ผลลัพธ์การตรวจ type: PASS (ผ่าน) หรือ FAIL (พบข้อผิดพลาด) |
ERROR_COUNT | จำนวนข้อผิดพลาด (errors) ทั้งหมดที่ตรวจพบ |
การทำงาน
สั่งรัน CHECK_COMMAND ภายในคอนเทนเนอร์ CHECK_IMAGE ที่ไดเรกทอรี WORKING_DIRECTORY (ค่าเริ่มต้นคือ npx tsc --noEmit สำหรับ TypeScript) โดยผลลัพธ์ CHECK_RESULT จะได้รับค่า PASS หรือ FAIL ตาม exit code พร้อมทั้งตรวจนับจำนวนข้อผิดพลาดจากเอาต์พุตของโปรแกรม
ตัวอย่าง
ตรวจสอบแอปพลิเคชัน TypeScript ใน Monorepo
steps:
- name: type-check
uses: loha/type-check@v1
with:
CHECK_COMMAND: 'pnpm type-check'
WORKING_DIRECTORY: 'apps/dashboard'