ทำความรู้จักกับ GitHub Actions

Event May 13, 2022

พอดีเราเลื่อน Facebook ไปเจอกิจกรรมนี้ จากเพจ Spark Tech Thailand - Tech ใกล้ตัว ก็เลยเข้าไปเรียนรู้ด้วยเลยแล้วกัน งานจัดขึ้นแบบ online ในวันเสาร์ที่ 7 พฤศจิกายน 2565 เวลา 20:00 - 21:30 น.

สามารถดู event ใน Facebook ได้นะ

.

ทำความรู้จักกับ GitHub Actions
มาเรียนรู้เกี่ยวกับพื้นฐานของ GitHub Actions และการจัดการ Workflow แบบอัตโนมัติ - แนะนำ GitHub Actions- การ Deploy แอปพลิเคชันขึ้น Cloud โดยอัตโนมัติจาก Repo ด้วย GitHub Actions-...

ก่อนอื่นคนสอนในคํ่าคืนนี้แนะนำตัวก่อน

ส่วน Agenda ใน session นี้

What's Github Actions?

Repository Platfrom คืออะไร?

เป็น platform เพื่อแชร์ code หรือข้อมูลต่างๆ เพื่อการทำงานร่วมกัน หรือแชร์ผลงานตัวเองก็ได้ เช่น Github

การทำงานคือเราแก้ไข code บนเครื่องตัวเอง แล้วบิ้วโค้ดในเครื่องของเรา และ upload ขึ้นไปใน Repository Platfrom

เราทำส่วนเหล่านี้ เช่น deploy เป็น automate เพื่อลดการทำงานซํ้าๆ ให้มีนทำงานเองทุกครั้งในการแก้ไขไฟล์ ตอน build หรือ deploy

Github Action ทำหน้าที่อะไร?

เป็น automate workflow (บางที่ใช้คำอื่น เช่น pipeline) ช่วยลดงาน routine ให้กลายเป็น automation ให้เรามีเวลาไป develop ในส่วนอื่น แล้วก็ใช้เป็นตัว manage ในการอัพขึ้น cloud ด้วยนะ

ถ้าเป็น public repository จะใช้ฟรียาวๆ ส่วน private repository ใช้ฟรีในโควต้า 2000 นาที/เดือน เพียงพอกับโปรเจกต์เล็กๆ งาน idea ต่างๆ งานส่งอาจารย์

Workflow คืออะไร?

เป็นไฟล์ที่เขียนการทำงาน หรือการ execute ต่างๆ ผ่าน agent มีเครื่อง 2 แบบ คือ

  • Github-host : เครื่องของทาง Github
  • Self-host : ใช้เครื่องของเรา หรือ cloud ที่อื่น

มี marketplace ใช้ในการควบคุมการ deploy งานต่างๆได้อย่างง่ายดาย อยากให้ลองไป shopping ของที่เราจะใช้ในการทำ Github Action ก่อนที่จะเริ่มทำ Workflow จริง

https://github.com/marketplace?type=&verification=&query=action

แล้วเขาก็มี API ให้ใช้ด้วยนะ อันนี้ช่วยในเรื่องการทำคำสั่งต่างๆอย่างอัตโนมัติ เช่น มีคนเปิด issue มาว่า build database หรือยัง แล้วมันก็ไปทำ issue นี้ให้

Actions - GitHub Docs
With the Actions API, you can manage and control GitHub Actions for an organization or repository.

How Github Actions Work?

สร้าง file yml ขึ้นมา การทำงานหลักๆจะประกอบด้วย

  • Events : เหตุการณ์อะไรบางอย่างที่กระทำในนั้น เช่น code change, merge request
  • Jobs : รัน job ต่างๆตามที่เราสั่ง ทำงานบน Github-host หรือ Self-host ก็ได้
  • Actions : อันนี้เป็น action ว่าให้มันทำอะไรบ้าง

การทำงานของ Github Actions

ตัวอย่างนี้ developer push code ขึ้นไปบน Github เป็นการ trigger event ว่า เอ้ยย มีคน push code มาแล้ว จากนั้นก็ทำงานตามงานที่ได้รับมอบหมาย

  • run action : package ที่เราใช้จากการเลือกใน marketplace
  • run script : run ผ่าน command line หรือ bash หรือ shell script

อันนี้ไฟล์ demo จ้า

  • name : ชื่อ workflow ของเรา
  • on : event ที่เราต้องการ ในที่นี้คือเมื่อมีการ push code ที่ branch main และ path ch01/** มีการเปลี่ยนแปลง จึงจะทำงานได้
  • jobs : เราจะให้ทำงานเครื่องไหน ใส่ตรง runs-on ซึ่งรองรับทุก platform รวมถึง iOS และ Android ด้วย ใช้ build และ compile ได้หมด ส่วน steps ถ้าเป็น uses คือ ใช้ run action ส่วน name และ run ใช้ run script

Create First Workflow

สร้างไฟล์ .yml ใน folder .github/workflows ในที่นี้ใช้ชื่อว่า ch01.yml

ใน VS Code จะมี plug-in 3rd-party ของตัว Github Action อยู่ ให้เลือกอันที่มีคนใช้เยอะๆกับดาวเยอะๆ

เมื่อ push code ขึ้นไปแล้ว เจ้า workflow ก็จะเริ่มทำงานทันที

เมื่อทำงานเสร็จในแต่ละรอบ มันจะ clean ให้เรา ไม่ต้องไปลบเอง

อันนี้ตัว github ที่เขา demo อะนะ

GitHub - ninefyi/gh-action-series: Github Actions Series
Github Actions Series. Contribute to ninefyi/gh-action-series development by creating an account on GitHub.

แหล่งความรู้

document ของ Github Actions

Understanding GitHub Actions - GitHub Docs
Learn the basics of GitHub Actions, including core concepts and essential terminology.

อันนี้แหล่งเรียนรู้ของ Github

GitHub Learning Lab
Learn by doing, working with GitHub Learning Lab bot to complete tasks and level up one step at a time.

Q & A

สำหรับนักเรียน นักศึกษา สามารถใช้ email มหาวิทยาลัย หรือโรงเรียน เพื่อใช้เพิ่มหรีใน student pack ได้ ซึ่งคนทำงานที่ยังมี email มหาวิทยาลัยอยู่ก็ใช้ได้เหมือนกัน

https://education.github.com/pack

แหล่งเรียนรู้เรื่องโค้ด

GitHub - freeCodeCamp/freeCodeCamp: freeCodeCamp.org’s open-source codebase and curriculum. Learn to code for free.
freeCodeCamp.org's open-source codebase and curriculum. Learn to code for free. - GitHub - freeCodeCamp/freeCodeCamp: freeCodeCamp.org's open-source codebase and curriculum. Learn to code f...

ส่วนเรื่องแพลนราคาต่างๆไปดูได้ที่นี่เลย

https://github.com/pricing#compare-features

สุดท้ายเขาฝากกลุ่มใหม่ Visual Studio and GitHub Community Thailand ไว้ด้วยนะ

สำหรับเราอาจจะดูเพิ่มไว้หน่อยเผื่อได้ใช้งานกับฝั่ง Android เนอะ session นี้ก็ทำให้เราเข้าใจ Github Actions มากขึ้น


สามารถ support ค่ากาแฟเจ้าของบล็อกได้ที่ปุ่มแดงส้มสุดน่ารักที่มุมซ้ายล่าง หรือกดปุ่มตรงนี้ก็ได้จ้า

Buy Me a Coffee at ko-fi.com

ติดตามข่าวสารและบทความใหม่ๆได้ที่

อย่าลืมกด like กด share บทความกันด้วยนะคะ :)

Posted by MikkiPastel on Sunday, 10 December 2017

ช่องทางใหม่ ติดตามทุกๆสตรีมของเราได้ที่

Twitch
Twitch is the world’s leading video platform and community for gamers.
https://www.twitch.tv/mikkipastel

Subscribe ช่อง YouTube ของเราได้ที่

mikkicoding
Android Developer & Content Creator
https://www.youtube.com/c/mikkicoding

download แอพอ่านบล็อกใหม่ของเราได้ที่นี่

MikkiPastel - Apps on Google Play
First application from “MikkiPastel” on play store beta feature- read blog from https://www.mikkipastel.com by this application- read blog content by chrome custom tab- update or refresh new content by pull to refresh- share content to social network
https://play.google.com/store/apps/details?id=com.mikkipastel.blog

Tags

Minseo Chayabanjonglerd

I am a full-time Android Developer and part-time contributor with developer community and web3 world, who believe people have hard skills and soft skills to up-skill to da moon.