How To Run Your First CI/CD Pipeline Using GitLab CI/CD? | GitLab CI/CD Tutorial | Part IV
The project that we’ll be using for this GitLab CI/CD tutorial is the HourGlass 2018 [ https://github.com/psych0der/Hourglass ] which is a MERN(Mongo Express React & Nodejs) stack application. It’s a simple time management application of that time. As best practices change every month. Some of these might have been updated, but most of these are still relevant. It is a full production scale and production style development repository.
00:00 Goals for demo covered in the video
01:33 About moonstack app (time management app)
02:23 Mirrored repository from Github to GitLab for CI/CD
03:31 Explains line-by-line code
24.05 Conclusion
Goals for Demo: Introduction to the main objectives, including creating separate CI and CD pipelines, involving human gatekeepers for deployment decisions, and distinguishing between release and deployment processes.
Segregation Between Release and Deployment: Emphasizing the importance of allowing code merges into the master branch without automatic releases, requiring manual events for deployment.
Crossover Testing with LambdaTest: Discussing the use of LambdaTest for crossover testing, especially for local development environments without exposing the site to the internet.
LambdaTest Tunnel: Explaining how LambdaTest Tunnel works as a proxy to allow cloud-based browsers to access locally hosted websites for testing purposes, facilitating seamless cross-browser testing.
Project Overview: Introduction to the project used for the CI/CD demo, "Hourglass," a MERN stack application emphasizing time management, incorporating best practices from its development era.
GitLab CI/CD Configuration: Detailed walkthrough of the GitLab CI file, explaining how it orchestrates the CI/CD pipeline, including specifying environments, caching strategies, and job definitions.
Stages of the Pipeline: Overview of the pipeline stages, such as installing dependencies, running unit tests, linting, integration testing, end-to-end testing, client build, and finally, deployment.
Manual Triggering and Deployment: Highlighting the strategy for manual intervention in the deployment process to ensure releases happen at the discretion of the team, rather than automatically.
Integration and End-to-End Testing: Detailed explanation of setting up and running integration tests and end-to-end tests, including the use of services like MongoDB and tools like LambdaTest for cross-browser testing.
Artifacts and Caching: Discussing the use of GitLab artifacts to store build outputs and caching to optimize the build process, ensuring faster pipeline execution.
Building and Deploying: The final steps involving building the client-side application, deploying backend and frontend separately, and utilizing platforms like Heroku and Surge for hosting.
Continuous Delivery vs. Continuous Deployment: Clarifying the distinction and preference for continuous delivery in this context, allowing for manual review and execution of deployments.
Demonstration: Real-time demonstration of making changes, triggering the CI/CD pipeline, reviewing pipeline execution, and manually initiating deployment stages.
What Is Continuous Integration And Continuous Delivery(CI/CD)?
How To Build a CI/CD Pipeline In Azure DevOps ?
What Is Continuous Integration And Continuous Delivery(CI/CD)?
What is the difference between Continuous Delivery and Continuous Deployment?
16 Best Practices Of CI/CD Pipeline To Speed Test Automation
Build An Automated Testing Pipeline With GitLab CI/CD & Selenium Grid
How To Use GitLab CI To Run Tests Locally?
CircleCI Vs. GitLab: Choosing The Right CI/CD Tool
Jenkins vs GitLab CI: Battle of CI/CD Tools
Mayank Bhola
Mayank Bhola is the co-founder and head of product at LambdaTest. Bhola began his career as a software engineer at Zomato. He then moved to PressPlay TV and finally to Juggernaut Books, where he was the head of technology. Bhola joined as the lead architect at LambdaTest in 2018 and moved up the ranks to become a co-founder. He is responsible for the engineering & entire product development at LambdaTest. In his free time, Bhola loves to read non-fiction, discover new Italian food & learn something new.