เมื่อ Github Pages build Jekyll ไม่ผ่าน

tulakann bio photo

By tulakann

เวลาว่างส่วนใหญ่หายไปกับการนอน

Email Twitter Google+ Github

Reading time ~8 minutes

tulakann bio photo

By tulakann

เวลาว่างส่วนใหญ่หายไปกับการนอน

Email Twitter Google+ Github

บล็อกสั้นวันนี้ขอเสนอบันทึกประสบการณ์ Github Pages ไม่สามารถ build บล็อกของเราได้ โดยความพิเศษที่ทำให้ถึงขั้นต้องมาบันทึกไว้ก็คือมันรัน local ได้ปกติน่ะสิ! เกริ่นแค่นี้พอ เริ่มเลยละกันเพราะมันเป็นบล็อกสั้น ฮ่าๆ

ถ้าใครเคยได้อ่านบล็อกจาก tupleblog มาบ้างก็น่าจะพอสังเกตเห็นว่า บล็อกนี้มันอัพตามใจฉันเหลือเกิน บางทีก็หายไปเป็นครึ่งปี บางทีเดือนเดียวมาสามบล็อกอะไรแบบนี้ ซึ่งก็ตามนั้นแหละ เพราะบล็อกนี้เขียนตามใจฉันทุกอย่าง ฮ่าา แต่เหตุการณ์ที่มักจะเกิดขึ้นเป็นประจำหลังจากกลับมาเขียนกันอีกรอบคือ บล็อกแม่มรัน local ไม่ได้! อันเนื่องมาจากแพคเกจนู่นนี่นั่น เวอร์ชันนู่นนั่นนี่ เป็นต้น ดังนั้นประมาณทุกๆ สามเดือน (หรืออาจมากกว่า แล้วแต่จะระลึกได้) เราก็จะมานั่งอัพเกรดไส้ในของบล็อกเพื่อให้มันยังรันต่อไปได้ มีครั้งนึงได้เขียนบล็อกไว้ด้วยนะเมื่อครั้งที่ Github Pages อัพเกรดไส้ Jekyll ของตัวเองมาเป็น 3.0 แต่มันก็จะมี error หรือ warning เล็กๆ น้อยๆ ขึ้นมาเสมอเวลารันใน local แต่ก็ไม่เคยมีปัญหาเมื่อ push ขึ้นไปบน Github

ล่าสุดเมื่อ @titipata เขียนบล็อกใหม่มา ก็เป็นปกติที่เราจะผลัดกัน proof reading (แต่ทำหลังจาก publish แล้วด้วยนะ อินดี้ปะ) เมื่อเสร็จสิ้นการพิสูจน์อักษรตาม commit นี้เลย เราก็ได้ push ขึ้น Github ตามปกติ แล้วก็มานั่งกดรีเฟรชเบราเซอร์เพื่อรอดูความเปลี่ยนแปลงที่ควรจะเห็นได้ในครึ่งนาที… รีเฟรชไปได้ห้านาทีก็พบว่ามันยังไม่อัพเดทซะทีฟะ ก็เลยเข้าไปดูใน commit ของ tupleblog พบว่าเป็นดังภาพ

จากภาพคือถ้า commit นั้น build สำเร็จจะมีเครื่องหมายถูกสีเขียวขึ้นมา แต่ commit ล่าสุดที่เราได้ push ขึ้นไปกลับไม่มี ก็เลยต้องรีบไปล็อกอินแอคเคาท์ของ tupleblog เพื่อเช็ครายละเอียดอีกทีซึ่งก็พบว่า

มาถึงตรงนี้ก็งงไปครับ ลอง push ขึ้นไปอีกหนึ่ง commit โดยใส่ความเปลี่ยนแปลงแค่ 1 เว้นวรรค ก็ไม่ช่วยอะไร ก็เลยติดต่อ @titipata ให้ลองรันบนแมคหน่อย.. (เอ้อ ลืมพูดถึงไปเลย ล่าสุดนี่คือเรารัน local บนวินโดว์ ซึ่งกว่าจะทำให้รันได้ก็เสียเวลาไปเป็นวันเหมือนกัน ฮ่าา) พอลองรันก็พบว่าบนแมคไม่สามารถรันได้ โดยมีปัญหากับ gem ชื่อ json ขึ้น error มาให้งงงวยเล่นๆ ด้วย แบบนี้

Make sure that `gem install json -v '1.8.3'` succeeds before bundling.

เราก็เลยเปิดแมคมาลองบ้างเจอเหมือนกันเด๊ะ ก็ลองเมคชัวร์ตามที่ error มันบอก พอรันตามนั้นก็พังเหมือนเดิม… เอาวะ ลองอัพเดท gem หน่อย เผื่อหาย

gem update
bundle install

เห้ย json รันผ่านแล้ววว ดีใจได้ไม่ถึงสิบวิ ก็พังอีก คราวนี้เปลี่ยน gem….

Make sure that `gem install nokokiri -v '1.6.x.x'` succeeds before bundling.

….. ใบ้เลยตอนนี้ ก็รันตามมันแล้วก็พังเหมือน json กราบบบ ระหว่างนี้ @titipata ก็ได้ใช้วิชามารไปแล้วรันได้แล้วเรียบร้อย วิชามารชื่อ delete and clone.. ใช่ครับ ลบทิ้งแล้วโคลนมาใหม่ เราก็เอาสิวะ มันได้เราก็ต้องได้ ลุยยย….

Make sure that `gem install nokokiri -v '1.6.x.x'` succeeds before bundling.

ทำไมมันยังขึ้นเหมือนเดิมได้ฟร้าาา เป็นอะไรที่หลอนมาก และเดาว่าต้องมีปัญหาเพราะ gems แน่ๆ ฮึ่ยย ว่าแล้วก็ระลึกชาติไปตอนที่ทำให้บล็อกรัน local บนวินโดว์ได้ (commit นี้เขียนวิธีทำใส่ readme) ก็นึกขึ้นได้ว่าตอนนั้นก็มีปัญหากับ gems เหมือนกัน และจากการค้นหลายๆ แหล่งก็พบว่าให้ลองรันคำสั่งนี้ดู

gem update --system

โชะ รันได้แล้ววว เป็นความรู้สึกปิติยินดีระดับหนึ่งเลยก็ว่าได้ แล้วก็มานึกออกอีกว่า งั้นสถานะปัจจุบันก็เหมือนบนวินโดว์แล้วดิ รัน local ได้ แต่ push แล้ว fail เลยกลับไปทบทวน commit แรกที่ทำให้ build ไม่ได้อีกครั้งว่าแก้อะไรไปบ้าง จะได้ลองแก้กลับมาเผื่อมันจะ build ผ่านเหมือนตอนก่อนเจ๊ง พบว่า commit นั้นแก้ไป 4 ไฟล์ ย่อรูปไฟล์นึง อันนี้ไม่น่าเกี่ยว, ปรับขนาดอักษรของหัวเรื่องสำหรับเบราเซอร์ในมือถือ อันนี้ก็ไม่น่าใช่, พิสูจน์อักษรโพสต์ของ @titipata ก็ไม่น่าใช่อีกอะ สุดท้ายคือแก้ warning บล็อกเก่าของตัวเองโดยการใส่ลิควิดแท็ก {% raw %} เข้าไป อันนี้ดูจะมีแววสุด เลยมุ่งไปที่ไฟล์ของบล็อกนี้ แต่ยังไม่ทันจะได้แก้ @titipata ก็ทักมาบอกว่าคลีน readme ไปแล้วนะ push ไปแล้วด้วย ไอเราก็เอออเคๆ แต่มันจะ build ได้หรอวะ ก็ยังไม่ได้แก้อะไรใน commit ที่ทำให้ build ไม่ได้เลย แล้วก็กดเข้าไปดูในหน้า repo ของ tupleblog

…… อึ้งครับ

ขออีกที

โอเค ผ่านก็ผ่าน ดีละ ปล่อยให้มันเป็นปริศนาต่อไป นอนดีกว่า

เรื่องมันก็จบลงด้วยประการฉะนี้ ตอนนี้ tupleblog ก็สามารถรันได้ตามปกติทั้งบน local (Mac, Windows) และบน Github นะครับ ว่าแต่ไหนว่าบล็อกสั้น นี่มันไม่สั้นนะเนี่ย ขออภัยสำหรับการเกริ่นที่ไม่ค่อยตรงความจริงเท่าไหร่ ฮ่าๆ

อนึ่ง บล็อกนี้เขียนขึ้นเพื่อระบายความงง และแทรกความบันเทิงเล็กน้อย ดังนั้นภาษาที่ใช้ก็อาจจะหลุดจากกึ่งทางการไปอีก ต้องขออภัยมา ณ ที่นี้ด้วยครับ สวัสดี