วิธี reproduce error บน Travis CI

Chokchai Phatharamalai
odds.team
Published in
1 min readDec 27, 2021
Photo by Erik Mclean on Unsplash

วันก่อนเจอ error บน Travis CI แต่ reproduce บนเครื่องตัวเองไม่ได้ ทำให้แก้ยากมากเพราะทุกครั้งที่อยากลองอะไร ต้อง push ไปบน git แล้วให้ travis CI trigger build ให้ ทำให้ feedback loop นานมาก และก็เปลือง quota ด้วย เลยลองค้นดูว่าสามารถดึง worker ของ travis CI มาเป็น docker image บนเครื่องตัวเองได้ไหมนะ

พอลองค้นดูก็เจอวิธีจนได้ ค้นลำบากเหมือนกัน

เล่าย่อ ๆ คือใน build log บน travis CI จะมี id ของ worker instance อยู่

Worker informationhostname: 932754c2-e27d-4578-9d0a-b270b4022bd5@1.worker-com-7658dbcdc9-p7hzh.gce-production-1version: 6.2.22 https://github.com/travis-ci/worker/tree/858cb91994a513269f2fe9782c15fc113e966231instance: travis-job-d4da3b88-fda0-480b-917e-fbb33450ae18 travis-ci-sardonyx-xenial-1637079384-27de12ec (via amqp)startup: 6.392036227s

อย่างกรณีด้านบน worker คือ travisci/ci-sardonyx (ดูบรรทัด instace: ) พอรู้แบบนี้แล้ว ก็ให้ไปดึงมา

docker pull travisci/ci-sardonyx

คร่าว ๆ ก็แค่นี้แหละ ถ้าอยากรู้ขั้นตอนละเอียดกว่านี้ลองอ่านในบทความที่ผมอ้างอิงด้านล่างนะ

แต่พอผมลองจริง ๆ มันก็ยังไม่ตรงปกเท่าไหร่…

เพราะใน travis.yml ของผม มีการกำหนด language ด้วย

language: node_js
node_js:
- lts/*

ซึ่ง image ที่ดึงมามันไม่มี node ไปค้น ๆ ดูเจอว่ามันใช้ nvm ในการกำหนด node version ก็เลยต้องไปใช้ nvm install ในการลง node version เดียวกันมาเพื่อ reproduce แทน ก็ถือว่าพอถูไถ ดีกว่าไม่มีอะไรเลย

หวังว่าจะเป็นประโยชน์นะครับ :)

อ้างอิง

--

--