Tech
การรัน Job ใน Merge request ของ Gitlab ci
ผมอยากให้มีการ npm run lint
ทุกครั้งก่อนที่จะมีการ Merge branch เข้ามายัง dev branch เพื่อให้มันทำการเช็ด code ที่เขียนมาก่อนว่าถูกหลักไหม หรือใครอยากจะให้มันรันคำสั่งอะไรก็ได้ตามสะดวก สามารถทำได้ดังนี้ สำหรับคนที่ใช้ Gitlab ci อยู่
ตัวอย่าง Code
eslint:
stage: test
script:
- npm i
- npm run lint
cache:
paths:
- web/node_modules
rules:
- if: '$CI_MERGE_REQUEST_TARGET_BRANCH_NAME == "dev"'
ให้ดูในส่วนของ if: '$CI_MERGE_REQUEST_TARGET_BRANCH_NAME == "dev"'
จะเป็นการบอกให้ Job นี้ทำงานก็ต่อเมื่อมีการ Merge request เข้ามายัง dev branch ตามรูปล่าง
แต่หากมีการ Merge request ไปยัง branch อื่นๆ Job นี้ก็จะไม่ทำงาน ซึ่งตอนกด Merge ก็จะมีให้เราเลือกได้ว่าจะ merge ให้ก็ต่อเมื่อ Pipeline ที่เรากำหนดมัน Pass นะ ทำให้การ code เราก่อนเข้า branch จะมีประสิทธิภาพมากขึ้น
หรือใครอยากให้ run job ทุกครั้งที่มีการ merge request เลยก็เขียนดังนี้
test_c:
stage: test
script:
- echo "This job tests something."
rules:
- if: '$CI_PIPELINE_SOURCE == "merge_request_event"'
ลองนำประยุกต์ใช้กันนะครับ...
Comments ()