(Doc) Group 4 - CICD
(Doc) Group 4 - CICD
ABSTRACT
Continuous Integration (CI) and Continuous Delivery
(CD) tools are instrumental in modern software
development, automating key processes from code
integration to deployment. Jenkins, GitLab CI/CD,
Travis CI, and similar tools facilitate the automation of
tasks like building, testing, and deploying code
changes, enabling a seamless and efficient
development pipeline. By promoting early detection of
integration issues and automating repetitive tasks,
CI/CD tools not only accelerate software delivery but
also enhance reliability, fostering a collaborative and
agile development environment. These tools align with
DevOps principles, bridging the gap between
development and operations, ultimately resulting in
faster time-to-market and improved software quality.
GROUP 4
Cabigao, Piolo Justin C.
Castro, Martin Vince M.
Pulido, Earl John N.
Nono, Ricardo
Sebastian, Isaiah Kristian Z.
Continuous Integration Viscayno, Syrus V.
& Continuous Delivery PROFESSOR:
Mrs. PERFERINDA P. CAUBANG
Tools
Republic of the Philippines
PAMANTASAN NG LUNGSOD NG MAYNILA
(University of the City of Manila)
Muralla Street, Intramuros Manila 1002, Philippines
COLLEGE OF ENGINEERING AND TECHNOLOGY
Computer Engineering Department
- CI/CD is an automated approach in app development that aims to deliver apps to users
frequently. It involves continuous integration, continuous delivery, and continuous
deployment to solve the challenges of smoothly adding new code without causing issues
for development and operations teams.
- CI/CD brings continuous automation and monitoring across the entire app development
process, encompassing integration, testing, delivery, and deployment. This collection of
practices is known as a "CI/CD pipeline," and it involves collaboration between
development and operations teams in an agile manner, often following either a DevOps
or site reliability engineering (SRE) approach.
- Continuous Delivery (CD) mark a substantial change in the way that software is created,
tested, and deployed. The fundamental goal of CD is to fully automate and streamline
the software delivery process so that code updates may be confidently deployed into
production at any time.
Republic of the Philippines
PAMANTASAN NG LUNGSOD NG MAYNILA
(University of the City of Manila)
Muralla Street, Intramuros Manila 1002, Philippines
COLLEGE OF ENGINEERING AND TECHNOLOGY
Computer Engineering Department
- Automation is one of the guiding concepts of continuous delivery. Every step of the
development workflow, including code integration, building, testing, and deployment, is
automated. By doing so, the process is sped up, consistency is improved, and human
error is decreased. Code changes are routinely committed by developers, and each
commit starts an automated build process that produces a deployable artifact.
- Another essential component of CD is automated testing. Automated testing ensures
that code changes are extensively examined for accuracy, performance, and security.
This includes unit tests, integration tests, and acceptance tests. As a result, software
quality improves since problems are found earlier in the development process and fixed.
• Focus: CI primarily focuses on integrating code changes from multiple developers into a
shared repository frequently and automatically.
• Purpose: Its main purpose is to detect integration issues, bugs, and conflicts early in the
development process, ensuring that new code integrates smoothly with the existing
codebase.
• Frequency: CI typically involves automated builds and tests triggered whenever code
changes are pushed to the repository.
• Result: CI ensures that code is always in a working state within the shared repository,
reducing the risk of integration problems.
• Purpose: Its primary goal is to make sure that the code is always in a deployable state
and can be released to production at any time. It's about ensuring that the software is
production ready.
- The benefits of an automated CI/CD pipeline range from practical considerations like code
quality and rapid bug fixes, to ensuring you’re building the right thing for your users and
improving your entire software development process.\
➢ GoCD: GoCD is an open-source CI/CD tool that is known for its advanced workflow
modeling capabilities and its ability to scale to meet the needs of even the largest
teams. GoCD supports a wide range of programming languages and frameworks, and
it offers a variety of features that make it easy to automate the CI/CD process, such
as parallel execution and artifact caching. GoCD is popular among startups and fast-
growing companies, and it is used by companies such as Spotify, Airbnb, and Stripe.
Republic of the Philippines
PAMANTASAN NG LUNGSOD NG MAYNILA
(University of the City of Manila)
Muralla Street, Intramuros Manila 1002, Philippines
COLLEGE OF ENGINEERING AND TECHNOLOGY
Computer Engineering Department
➢ BuildBot: Buildbot is an open-source CI/CD server that is known for its flexibility and
its ability to be customized to meet the specific needs of any team. Buildbot supports
a wide range of programming languages and frameworks, and it can be integrated with
a variety of other tools and services. Buildbot is popular among both small and large
teams, and it is used by companies such as Mozilla, Red Hat, and Wikimedia.
➢ GitLab: GitLab is a DevOps platform that includes a CI/CD tool as part of its core
offering. GitLab's CI/CD tool is easy to use and integrates seamlessly with GitLab's
other features, such as code review and issue tracking. GitLab is popular among small
and medium-sized teams, and it is used by companies such as NASA, GitLab itself,
and InVision.