Understanding CI/CD Development

Photo by Growtika on Unsplash

Understanding CI/CD Development

What is CI/CD ?

CI/CD stands for continuous integration and continuous development. It means instead of doing production releases in large steps you continuously improve the product as fast as you can and deploy as fast as you can. CI/CD is how most modern applications are built and deployed. Advantage of CI/CD is that you can adjust to changing priorities faster, iterate faster and bring newer versions of your products faster into user's hands.

What should front-end and mobile app developers know about CI/CD ?

In CI/CD you build what is called pipelines. Each code change is represented by a PR (Pull Request). As soon as the PR is merged onto the main branch you trigger a change pipeline. This may include, running unit tests, static analysis checks, integration tests etc. Once all the checks are passed a new build is created and pushed live.

Depending on the company culture and process this process can vary from team to team but the crux of the story is that, each code change goes through a series of pre-defined steps and eventually ends up in production.

Generally, us software engineers do not have to know about how to build these pipelines but it is always helpful to know how it works. Often our role is limited to merging your PRs on the main branch.

If things go wrong in the pipeline we step in and see what went wrong and fix it.

Common CI/CD tools you can learn

Google Cloud Run, Vercel, Firebase etc. support CI/CD using Github Actions. Github as we know hosts git repositories and when you push a change, it can issue notifications to these services which then checkout the latest code and execute the steps you described in your code pipeline.

On Google Cloud Run such steps are defined using Docker and Google on Cloud Configuration files. An example of such NextJS deployment to Cloud run is described here.

Did you find this article valuable?

Support Android Authority by becoming a sponsor. Any amount is appreciated!