Overview of CI/CD
Companies frequently attempt to deploy features as quickly as possible to stay competitive in the market. CI/CD is a set of tools and capabilities that automates the process of integrating, releasing, and deploying software, enabling development teams to deliver software to users in a timely, repeatable, and secure manner. By doing this, CI/CD supports the larger goal of agile methodology while supporting the DevOps approach of aligning development and operations teams.
Implementing CI is the first essential step for a developer to create high-quality code by automatically creating, testing, and integrating code revisions within a shared repository. By doing this, it is possible to add new features while causing the codebase as a whole as little disruption as possible and maintain stability and functionality.
Contrarily, CD automates the procedure for sending customers new codes. The code is automatically deployed to production after integration and testing, giving customers access to new features and advancements as soon as they become available. This eliminates the need for labor- and error-intensive manual deployment procedures. Teams may release new features and upgrades to users more frequently and with less work by automating the deployment process.
Together, CI and CD help teams work more efficiently, improve the quality of their code, and deliver new features to users faster.
How to Establish a CI/CD Pipeline?
Introduction to Azure Web Apps
Azure web app is needed for developing, deploying, and expanding web applications, Microsoft Azure’s Azure Web App platform-as-a-service (PaaS) provides a reliable, affordable option that is fully managed. It features automated scaling capabilities, integrated security, support for custom domains, and a worldwide scale. By doing away with infrastructure management, it frees up developers to concentrate on building code and providing value to their consumers.
Creating an Azure Web App Service
Create a Web app resource with a distinct name under a relevant subscription and resource group with a particular location or App Service plan in the Azure portal. Because the web app’s URL will be name.azurewebsites.net, the name of the web app must be distinctive.
Select “your new web app” under Web apps. Select Get Publish profile from the Overview page, as seen in the accompanying screenshot.
Overview of GitHub
GitHub is a web-based platform used by developers to collaborate and share their code. GitHub serves as the primary repository for many open-source projects. Teams can collaborate more productively and effectively with the support of its strong version control, code review, and issue-tracking features.
Deploying a NodeJS Application to GitHub
You’ll produce an index.js file with a slightly altered version of the “HELLO WORLD!” example from [nodejs.org]. As soon as an Azure web app is launched, the code adds process.env.PORT as the port to listen on. A new repository can then be created by logging into GitHub.
The steps for publishing Node JS code to GitHub are as follows.
Initialize a local Git repository
Commands to add files to the repository
git add index.js
git add package.json
git add package-lock.json
git add web.config
git commit -m “initial commit”
Command to add a git remote for pushing updates to the web app
git remote add [URL for remote repository]
Push your changes to Azure
git push origin master
Setting up GitHub Actions
Click on Settings next to the name of your repository, navigate to the Security subsection, choose Secrets, and then click on Actions. Go to the New secret repository. By pasting the contents of the downloaded publish profile file into the secret’s value box and giving it the name AZURE_WEBAPP_PUBLISH_PROFILE, you can use app-level credentials. Then, click on the repository secret.
Creating the Workflow
In the repository, click on Actions and select Deploy Node.js to Azure web App.
When a push is made to the master branch, the workflow shown in the next example shows how to build, test, and deploy the Node.js project to Azure App Service.
Set the name of the web app you generated as AZURE_WEBAPP_NAME in the workflow environment key. Change NODE_VERSION to the version you use if you use a Node.js version other than 14.x. Click commit modifications after selecting start commit.
The build and deploy task will now begin. Build and deploy tasks are completed quickly, usually in less than a minute. Visit the Azure site now and select Browse or URL. It will now open https://yourwebapp.azurewebsites.net in the browser.
A webpage that displays “Hello World” appears, as shown in the following screenshot.
Since its inception, GitHub Actions have completely changed the way developers handle workflow automation. It allows you to automate tedious software workflows like installing dependencies, running tests, detecting vulnerabilities, and deploying applications to a server. You can discover, create, and share actions to perform any job you’d like and combine actions in a completely customized workflow.