Github Flow with Github action

Getting Started

The GitHub Flow is a lightweight, branch-based for projects with regular deployments.

As the workflow above, we just touch only 2 branches; master(Currently is main branch) and feature branch (own branch for develop).

Step of Github flow work

  1. Clone resources from main branch and checkout to feature branch (your own branch).
  2. Edit, change or fix the code in resources on your own branch then commit.
  3. Push to the original branch.
  4. Open pull request and tag reviewer to review your code.
  5. When reviewing finish, the reviewer will merge the code to main branch.


A complete example demonstrating a Feature Branch Flow is as follows. Assuming we have a repo setup with a main branch.

git checkout main git checkout -b <feature_branch>

So, the work happens on feature branch (edit, change, fix the code)

git add .

git commit -m <commit message>

git push origin <feature_branch>

git request-pull main ./

Github action is the best way for supercharge the Github workflow using event-driven design. It’s fully built-in in the Github that’s responsible to automate, customize, and execute your software development workflows in your repository likes the CI/CD pipeline.

Basic concepts of Github Action

Here’s the prove concept of Github action integrate with the workflow.

  • Workflows: Every repository contain workflow (one or more workflows) that were defined be separate YAML file in .github/workflows directory of the repo and each workflows can run parallel at the same time. As following as workflow syntax
  • Event: A workflows will trigger if we create one or more events that consist of internal Github event such as a pull request, a release or a push, a schedule event likes a cron job or external event that triggered be Webhook or API.
  • Jobs: A workflow can have one or more jobs that contains a set of commands and then run when the workflow is triggered. Jobs can run parallel. Also can define run sequentially when we have dependencies between jobs.
  • Runner: Each job runs on a specific runner. A runner is virtual machine hosted by Github with an operating system (Linux, MacOS or Window). You can choose them and also use self-hosted runner.
  • Steps: A sequence of steps are under a job that are either shell command or action. All the steps of a job run sequentially on runner.
  • Actions: An action is reusable unit of code which can be included as a step of a job.

P.S. for example of Github action workflow, can see in the reference guide below.

Reference guide




“Technical Project Manager / Infrastructure Consultant” who’s focusing on the agility deliverable project with valuable & the cloud native technology innovation

Love podcasts or audiobooks? Learn on the go with our new app.

Recommended from Medium

Why We Do Exploratory Testing Diagram By Simon Tomes — Tentamen Software Testing Blog

Welcome Terragonians!

Mastering Basic NumPy Operations

Getting Lost on the Journey to the Cloud

Sider’s New feature. Create sider.yml when a repository is added

Top 200 Cloud Questions

I had a great experience working in lgmvip

DevOps Days India 2018 — My Key Takeaways

Get the Medium app

A button that says 'Download on the App Store', and if clicked it will lead you to the iOS App store
A button that says 'Get it on, Google Play', and if clicked it will lead you to the Google Play store


“Technical Project Manager / Infrastructure Consultant” who’s focusing on the agility deliverable project with valuable & the cloud native technology innovation

More from Medium

Android Vulnerability — Way to Read Storage Files

Introduction to [Firebase]

Case Study: Eucalyptus App

Heuristic Analysis on #MMT