ยังอยู่ในซี่รีย์ จด Cypress อยู่
รอบที่แล้วมั่วว่าไม่ต้อง npm install แต่พอลองเช็คดี ๆ กลายเป็นไม่ใช่ มันยังต้องการอยู่ แต่ถ้าต้อง npm install ก็ไม่สวยอีก อยากได้รัน Docker image แบบคลีน ๆ แบบใช้แล้วรันได้เลย เลยได้ท่านี้มา
ใช้ Jenkins agent เป็น dockerfile
จริง ๆ ตอนแรกกะ build & publish Docker image ไว้ซักที่แล้วเปลี่ยนมาใช้ image ตัวนี้แทน ดูไปดูมา Jenkins มีท่าที่สามารถ build Docker image ณ runtime ได้เลย ไม่ต้องไป publish เออดี ลองดีกว่า
เปลี่ยน agent จาก docker เป็น dockerfile
ของเดิมเราใช้เป็น agent docker เราก็เปลี่ยนเป็น dockerfile ทำให้เราสามารถลบ npm install ออกไปได้
ย้าย npm install มาที่ Dockerfile แทน
คราวนี้ npm install ที่เราลบออก ก็ย้ายมาแปะที่ Dockerfile แทน ข้อดีก็คือถ้าเรามี libs อื่น ๆ มันก็จะ install ให้ไปพร้อมกันก่อนรันเลย (ในกรณีเราคือ cypress-cucumber-preprocessor)
ขั้นตอนง่าย ๆ คือ
- ใช้ cypress/included เป็นฐานเหมือนเดิม
- copy ไฟล์ package*.json มา
- แล้ว install ซะ
เสร็จแล้วก็รัน Job เลย
~ จบปิ๊ง
Refs: