DevOps is a set of practices to test build and deploy code in smaller chunks. Imagine a scenario in which there are two developers working on a project and one is working on the backend part of the project creating APIs and on the other hand, the front-end side developer is building and working on creating the UI and after months of burning midnight oil on the project, on the release day when it’s time to merge the codes we find they are completely incompatible, there build fails and now they have to spend extra hours and money to work on the conflicts and make their project work.
To resolve these issues CI tools comes into play in which the developers of the project push their code on the regular basis and their code goes through the test on the CI server and then if the test case passes or fails we can perform specific actions like merging code to the specific branch and so on.
There are a lot of CI/CD tools available for example TravisCI, CircleCI, Github actions and many more. In this article, I will be talking about Github actions and what pros it provides and its cons.
Github actions make it easy to automate software workflows. If some actions have to be taken when some events occur in the repository we can use Github actions for example if we want to take action on the event when someone just starred our repository or a new pull request is created, issues are created and we want to assign the issue to the particular contributor. On these events, automated actions will be performed if actions are set up.
We can use Github actions for greeting users and managing issues, assignments and automate these things but why test our code using Github actions if we have TravisCI and other CI tools? Because third-party integration is a tedious task and we have to change tabs for looking up where our build fails and all other kinds of stuff, Github Actions provide the same user interface as source code, making it more manageable. While using Github Actions we don’t face third-party integration part and it provides a marketplace in which we can use the existing written templates in our .yml file.
We just write what we want on the particular instance of the CI server and Github Actions will install that for us and then we can run jobs in parallel or wait up for the previous job to complete then run the particular job.
- macOS is included in the free tier.
- 2000 minutes free per month and renews every month.
- One UI for source code and CI/CD pipeline.
- Github Actions is only available for github.com and Github enterprises.
- Not as much community support.
- Newer platform.
- No GPU enabled build images.
The CI/CD pipeline is used to increase the speed of development and maintaining stability in the application and Github actions helps us to achieve this purpose. The amount of code required to set up a workflow in Github actions is higher as compared to CircleCI and TravisCI. But the Github marketplace which provides Github actions pre-written by the Github community and having a code repository and CI/CD pipeline in the same platform are some points that make Github actions a strong contender.
In future blogs, I will be discussing How I integrated CI/CD pipeline into the Scan8 project and blockers which I have faced.
Stay tuned for further updates and feel free to connect with me on Linkedin if you have any doubts, feedbacks or even otherwise!
Join the GITTER channel of Scan8 for more insights into the project.