1. Github Actions คืออะไร ? |
2. สร้าง workflow ด้วย GitHub |
3. สร้าง Cloud Build ใน Google Cloud Platform |
ในบทความนี้เราจะใช้ Github Actions สร้าง Release อัตโนมัติ ร่วมกับ Cloud Build ให้ build และ deploy อัตโนมัติทุกครั้งที่เรา push ขึ้น GitHub
1. Github Actions คืออะไร ? |
2. สร้าง workflow ด้วย GitHub |
3. สร้าง Cloud Build ใน Google Cloud Platform |
Actions มันคือวิธีการใหม่ที่จะสร้าง workflow สำหรับนำ sourcecode บน GitHub ไปดำเนินการต่อ โดยมี trigger จาก Github events โดย workflow จะประกอบไปด้วย หลายๆ action ร้อยเรียงกันไป แต่ว่า! Action ไม่สามารถ trigger Action ของอีกอันได้(งงไหมหว่า) เช่น เมื่อมีคน push เข้ามาที่ branch main ก็ให้ deploy ไปที่ host ที่เราต้องการโดยอัตโนมัติทันที เป็นต้น
เราสามารถไปหา action ต่างๆ ที่มีคนทำไว้ให้เราแล้วได้ที่ GitHub Marketplace
ซึ่งแน่นอนว่าเราจะใช้ของที่ทำไว้แล้วค่ะ ไม่ได้ทำเอง ฮ่าาาาา
ก่อนอื่นเลย เราจะสร้าง workflow ไว้ใน .github/workflows/ โดยเขียนไว้ในไฟล์ .yml ให้เราเข้าไปใน GitHub และเข้าไปที่ Actions > Set up this work flow
เขียน code ตามภาพได้เลย หรือสามารถดูฉบับเต็มได้จากที่นี่ GitHub Tag แล้วก็กด Start commit ได้เลย
จากโค้ดจะเห็นว่า
on:
push:
branches:
- master
กล่าวคือ workflow จะทำงานก็ต่อเมื่อมีใครสักคน push code ขึ้นมาที่ branch master
การใช้คำสั่ง uses มีความหมายว่าให้รัน action ตามที่ระบุไว้ กรณีนี้คือ ขั้นตอนแรกให้รัน action จาก actions/checkout@v2 พอรันเสร็จแล้ว ขั้นตอนที่สองก็ให้รัน action จาก mathieudutour/github-tag-action@v5 แล้วก็รัน actions/create-release@v1 ตามลำดับ
ขั้นตอนการทำงาน เป็นดังนี้
- Set a job
- Run action/checkout@v2
- Bump version and push tag
Tag นั้นจะเริ่มต้นจาก v0.0.0(v.x.y.z)
- Create a GitHub release
- Post Run action/checkout@v2
- Complete job
ภาพตัวอย่าง Google Actions สร้าง Release อัตโนมัติ หลังมีการ Push ไปที่ branch master
ให้เราเข้าไปใน GCP Console และเข้าไปที่ Cloud Builds > Trigger เพื่อไปสร้าง Trigger เมื่อเข้าไปแล้วก็กด Add Trigger ได้เลย
เมื่อเราเข้ามาแล้ว เราก็สามารถตั้งชื่อ Trigger ได้เลย ตรง Source
ให้เลือก GitHub Repository ที่เราต้องการ และเลือก Build Configuration ซึ่งขอให้เราเลือก Cloud Build configuration (yaml or json) และบอกตำแหน่งของ cloudbuild.yaml ของเรา
ทีนี้ Cloud Build ก็จะ deploy ให้เราอัตโนมัติแล้ว ทุกครั้งที่เรา push ขึ้น GitHub ใน branch “master”
การใช้ Cloud Build นั้นไม่ยากเลย เพียงแค่สร้างไฟล์ cloudbuild.yaml และสร้าง Trigger บน GCP console แค่นั้นเอง ซึ่ง cloudbuild.yaml จะเป็นเสมือนชุดคำสั่งให้ Cloud Build ทำตาม สามารถอ่านและทำตาม step by step อย่างละเอียดได้ที่ blog ของคุณบอสได้ที่นี่ค่ะ
Written by Mallika Somporn
Cloud Ace Thailand
ทำความรู้จักกับเทคโนโลยีอื่นๆ บน Google Cloud กับกิจกรรม webinar
หากคุณสนต้องการคำปรึกษา Cloud Ace Thailand พร้อมให้บริการที่จะสนับสนุนคุณตั้งแต่ การให้คำปรึกษา จนถึงการออกแบบระบบ ติดตั้งระบบ ย้ายระบบ ในฐานะ Google Cloud Partner ที่มีความเชี่ยวชาญ และได้รับรางวัล Service partner of the year ในปี 2019
ติดต่อเรา th_sales@cloud-ace.com
Thank you for subscribing!
Have a great day!