Release Management ด้วย Git: วางแผน Release อย่างเป็นระบบ

Release Management ด้วย Git: วางแผน Release อย่างเป็นระบบ

Release Management เป็นขั้นตอนสำคัญในการจัดการเวอร์ชันของซอฟต์แวร์ โดยใช้ Git ให้ทีมสามารถวางแผนและดำเนินการ Release ได้อย่างเป็นระบบและมีประสิทธิภาพ

Release Branches Strategy

กลยุทธ์การจัดการสาขา Release ช่วยให้การพัฒนาแบบ Parallel เกิดขึ้นได้อย่างราบรื่น:

  • main: สาขาหลักที่เก็บรหัสผลิตภัณฑ์
  • develop: สาขาพัฒนาที่รวมคุณสมบัติใหม่
  • release/x.x.x: สาขารองสำหรับเตรียมการปล่อยตัวอย่างเป็นทางการ
  • hotfix/x.x.x: สาขาเพื่อแก้ไขจุดบกพร่องฉุกเฉินในการผลิตภัณฑ์

Git Tags สำหรับ Versioning

ใช้ Git Tags เพื่อทำเครื่องหมายเวอร์ชันที่เฉพาะเจาะจง:

# สร้าง annotated tag
git tag -a v1.0.0 -m "Release version 1.0.0"

# ดู tag ทั้งหมด
git tag -l

# ดึง tag เฉพาะ
git checkout v1.0.0

# ส่ง tag ไปที่ remote
git push origin v1.0.0

# ลบ tag
git tag -d v1.0.0

CHANGELOG Maintenance

การบำรุงรักษา CHANGELOG ที่ดีช่วยให้ผู้ใช้เข้าใจการเปลี่ยนแปลง:

# CHANGELOG.md

## [1.0.0] - 2026-03-28

### Added
- New feature X
- New API endpoint Y

### Changed
- Updated documentation
- Improved performance

### Fixed
- Bug fix #123
- Security issue #456

### Deprecated
- Old API will be removed in v2.0.0

## [0.9.0] - 2026-03-01
...

GitHub Releases Feature

GitHub Releases เป็นวิธีมาตรฐานในการประกาศ Release อย่างเป็นทางการ:

  • สร้าง Release จากวิธี web UI ของ GitHub
  • แนบไฟล์ประกอบ (binaries, archives)
  • สร้างบันทึกประจำรุ่นเชื่อมโยง
  • ปักหมุด Release สำคัญ

Automated Release Notes

ใช้เครื่องมืออัตโนมัติเพื่อสร้างบันทึกประจำรุ่น:

# ใช้ conventional commits
# สร้างบันทึกประจำรุ่นอัตโนมัติด้วย tools เช่น standard-version

npm install -g standard-version
standard-version

# หรือ commitizen
npm install -g commitizen cz-conventional-changelog
cz bump --changelog

Release Checklist

ตรวจสอบรายการก่อนปล่อยตัวอย่างอย่างเป็นทางการ:

  • ทดสอบโครงการอย่างเต็มที่
  • อัปเดตเวอร์ชันในไฟล์ package.json
  • อัปเดต CHANGELOG
  • สร้าง release branch จาก develop
  • แปลง tags ด้วยเวอร์ชันใหม่
  • ส่งออก Release ไปยัง main
  • รวม Release กลับเข้า develop
  • สร้าง GitHub Release พร้อมหมายเหตุ
  • แจ้งเตือนผู้ใช้เกี่ยวกับการปล่อยตัวอย่างใหม่

ตัวอย่างขั้นตอน Release

# 1. สร้าง release branch
git checkout -b release/1.2.0 develop

# 2. อัปเดตเวอร์ชัน
echo "1.2.0" > VERSION
git add VERSION
git commit -m "Bump version to 1.2.0"

# 3. แปลง tag
git tag -a v1.2.0 -m "Release version 1.2.0"

# 4. ส่งออกไปยัง main
git checkout main
git merge --no-ff release/1.2.0
git push origin main

# 5. รวมกลับเข้า develop
git checkout develop
git merge --no-ff release/1.2.0
git push origin develop

# 6. ส่ง tags
git push origin v1.2.0

# 7. ลบ release branch
git branch -d release/1.2.0

สรุป

Release Management ที่เป็นระบบด้วย Git ช่วยให้การจัดการเวอร์ชันและการปล่อยตัวอย่างเป็นไปอย่างมีประสิทธิภาพ การใช้ release branches, git tags, CHANGELOG, และ GitHub Releases ร่วมกัน ทำให้ทีมสามารถจัดการการปล่อยตัวอย่างที่ซับซ้อนได้อย่างสำเร็จ