Backend Handbook
Leapwise
  • 👋Introduction
  • Software Design Principles & Clean Code
    • Atomicity
    • Modularity
    • Hierarchy
    • Loose coupling
    • Asynchronous programming
  • Development Practices
    • JavaDocs
    • Technical Debt
    • Testing Guidelines
      • The Importance of Test Automation
      • The Testing Pyramid
        • Unit Tests
        • Integration Tests
        • End-to-End Tests
      • Mutation Testing
      • Contract Tests
        • REST Controller Contract testing
        • OpenAPI Contract testing
      • Testing Frameworks
        • JUnit 5
        • Testcontainers
        • Mockito
      • Writing Clean Tests - Best Practices
    • Common library
    • Generic CRUD
    • Update Facade
  • Development Tools & Environment
    • Monitoring
    • Performance tuning
    • Multi-tenancy & Configuration Management
    • Git practices
    • CI/CD
    • Maven
  • Project Management
    • Jira
    • Confluence documentation
    • SCRUM
    • Our ways of working
  • LIFE AT LEAPWISE
    • Introduction
    • Who are we?
    • What do we do?
    • Our values
    • Hiring process
      • Hiring: A Mid Frontend Developer's Point of View
    • Benefits we offer
    • Onboarding process
      • Onboarding: A Senior Digital Marketing Specialist's perspective
    • Mentorship program
    • Career development
      • Trainings & certificates we offer
      • Career development: A Senior Software Developer's Insight
    • Community building
    • Juniorship
    • First-hand info from our first team member
    • Join our team
Powered by GitBook
LogoLogo

Company

  • About
  • Culture
  • Services

Insights

  • Leapwise Newsletter
  • Blog

© Leapwise

On this page

Was this helpful?

  1. Development Tools & Environment

CI/CD

Continuous Integration (CI) and Continuous Deployment (CD) are essential practices in modern software development that aim to streamline the development process, enhance collaboration, and ensure the delivery of high-quality software.

Continuous Integration: In CI, developers regularly merge their code changes into a shared repository. The integrated code is then automatically built, tested, and verified using an automated process. This helps identify and address integration issues early in the development cycle, promoting a more stable and reliable codebase.

Continuous Deployment: CD extends the CI process by automating the deployment of successfully tested code changes to various environments, including production. The goal is to reduce manual intervention, minimize deployment errors, and deliver new features and updates to end-users rapidly.

Keeping in mind the previously mentioned things and knowing the end result of the automation through the gitlab pipeline, we can more easily deal with the proper implementation of the entire flow through an example. The most common implementation of a simple pipeline looks linear, and by linear I mean that all jobs are executed sequentially. In a small number of jobs or jobs that require little time, this implementation is just fine, but in more complex ones, where the number of jobs might be a little higher and some jobs might take longer, optimisation is definitely something to think about. Also, in the pipeline optimisation process, we should consider reducing computing time, because most cloud cicd services build their business model around computing minutes per month.

PreviousGit practicesNextMaven

Last updated 12 months ago

Was this helpful?

Page cover image