Github action is a platform to automate developer workflow or software development workflows. It allows you to directly create personalized
lifecycle workflows for software creation in your Github repository. These workflows are made up of various tasks called acts.
This helps you to directly provide Continuous Integration (CI) and Continuous Deployment (CD) capabilities in your repository and many other functions. So every time something happens in your repository or to your repository you can configure automatic actions to get executed in response.
and these things that are happening in your repository are the events so you listen to events and require workflow automation to execute them.
All these things can be automated by using actions called GitHub action.
Below is a list of the key principles of GitHub Action you should be familiar with when using it.
Actions:
Action is the smallest compact workflow block used to execute any types of events automatically and can be merged as steps to construct a task.
You can build your own actions or use marketplace actions.
Events:
Events are unique tasks it can pull request or issues raised by contributors or users. events activate a workflow process.
For example, when someone pushes into the repository or when a pull request is generated, a workflow is triggered.
Runners:
A runner is a computer with the Github Actions runner program enabled. Then the runner waits for jobs that can then be executed. They run the tasks of the work after setting up a job and post the performance and progress return to Github.
Job:
In an example of a virtual world, a job is composed of many steps and runs. If the current job relies on the previous job to succeed, jobs may run separately from each other or sequentially.
Step:
A stage is a sequence of instructions that a job can perform. Steps are capable of running commands or actions.
Workflow:
A Workflow is an automatic process that can be activated by an event and can consist of multiple jobs. Workflows are specified in the .github/workflows the location that used a YAML file.
CI CD with GitHub Actions:
The most common workflow for your repository is a ci cd pipeline. here, you commit your code the build starts it test your code, builds & push the effects, and deploys the application on the deployment server.
Using GitHub actions for the CICD pipeline is the first and obvious advantage when you are already hosting your code on GitHub and now you can use the same tool for the CICD pipeline as well. you don't have to set up a third-party tool and integrated it into your code for CICD.
Remarks:
Github action is essentially a tool for developers to offer them a feature to simplify our workflows so they don't need DevOps every time. In the Github culture of DevOps, we can orchestrate any wokflow and integrate/automate our projects with other platforms.