pnwt.bid
Published on

หมดปัญหาการลืม build application ที่ local machine ด้วย pre-commit

Authors

Overview

เคยเจอปัญหานี้กันไหม เวลาที่เราแก้ไขงาน หรือ มีการแก้บัค หรือ implement ฟีเจอร์ต่างๆ และ เวลาที่เราจะ commit, push code ของเราขึ้นไปยัง remote branch และ ลืม build application เป็นเหตุให้เมื่อเราจะ deploy app ไม่ว่าจะเป็น env ใด ก็ตาม มีโอกาสที่จะ build ไม่ผ่านจากcode ที่เราเขียนไป ผมจึงมานั่งคิดว่า เราจะมีวิธีการไหนที่ทำให้เราไม่ลืม build application ก่อนที่จะ push code ของเราขึ้นไปยัง remote branch

จนมาเจอเจ้าตัวนึงที่เรียกว่า pre-commit เข้ามาช่วยแก้ปัญหาได้อย่างไร มาดู

1. Install pre-commit

using pip

$ pip install pre-commit

Check version

$ pre-commit --version

2. Configuration pre-commit

อันดับแรกสร้างไฟล์ script ที่เราต้องการเรียกใช้งานก่อน

build.sh
#!/bin/bash
echo "========== App javascript bundler building.... =========="
yarn build
exit 0

จาก script สั่ง yarn build เพื่อทำการ build application

pre-commit.yaml
repos:
  - repo: local
    hooks:
      - id: ts-build
        name: Javascript building application to bundler
        entry: ./build.sh
        language: script
        pass_filenames: false

3. Trigger pre-commit

จากตัวอย่าง ผมจะสร้าง config yaml ก่อน ด้วยการใช้งาน repo แบบ local เพื่อทำการ trigger script ของเราจากในเครื่อง และ ให้ไปอ่านไฟล์ script จาก ./pre-commit/build.sh ที่เราสร้างไว้

ทีนี้เมื่อเราทำการ commit ไฟล์ใดๆจาก local ของเรา เจ้าตัว pre-commit จะทำงาน โดยการไป trigger script ของเรา แล้วจะทำการ build application ก่อนที่เราเขียนไปยัง remote branch ถ้า build ผ่าน จะไม่แสดง error message ใดๆ และสามารถที่จะ push ไปยัง remote branch ได้

เรียกว่าดีมากๆ เพราะ จะทำให้เรามั่นใจว่า code ที่เราเขียนไป จะ build ผ่านแน่ๆ

นอกจากนี้เรายังสามารถนำไปปรับใช้กีบเรื่องอื่นๆได้อีกเช่น การ trigger unit test, check white spaces

ลองดูรายละเอียดเพิ่มเติม -> here

Thanks for watching!