การรัน Job ใน Merge request ของ Gitlab ci
![การรัน Job ใน Merge request ของ Gitlab ci](/content/images/size/w960/2022/03/trigger-jobs-in-gitlab-ci-on-merge-request.jpg)
ผมอยากให้มีการ 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-pipeline](https://snappytux.com/content/images/2022/03/merge-request-pipeline.png)
แต่หากมีการ 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 ()