Published: 19 January 2016
Summary
Continuous integration is the practice of integrating, building, testing and delivering functional software on a scheduled, repeatable and automated basis. This document provides guidance to create a CI pipeline required for software development teams to implement continuous delivery and DevOps.
Included in Full Research
- Prework
- Determining Your Maturity Level
- Understanding the Definition of a CI Pipeline
- Using CI to Launch Your CD Implementation
- Brainstorming Your Desired Outcomes and Artifacts
- Conducting an Inventory of Your Existing Build Infrastructure
- Step 1: Document and Benchmark Your Current Build Processes
- Documenting Your Current Build, Test and Deployment Process
- Benchmarking the Current Process
- Step 2: Create an Automated, Repeatable Build Process
- Designing an Optimized and Repeatable Process
- Creating Builds Based on Configuration and Convention
- Managing Traceability and Fidelity
- Step 3: Align Development Processes and Practices
- Adhering to the Golden Rule
- Ensuring That Developers Write Unit Tests
- Releasing to the Main Branch Frequently
- Step 4: Create a CI Environment
- Increasing Transparency With the CI Process
- Keeping Builds Fast
- Understanding Build Types
- Designing in the Capability to Recover From Failure
- Step 5: Add Analysis, Inspection and Advanced Test Processes
- Including Static Code Analysis and Code Inspection Tools
- Adding Automated Functional and System Test Capabilities
- Step 6: Deploy to Test Environments
- Provisioning and Configuring Test Environments
- Follow-Up
- Regularly Review Metrics Data to Identify Opportunities for Improvement
- Continuously Monitor and Improve the Process
- Regularly Review Infrastructure Requirements
- Brittle Scripts and Slow, Broken Builds
- CI Makes Things Worse Before They Get Better
- Team Members Who Work Around Governance
- Stakeholders Who Lose Confidence in Test Automation
- New Platforms That Don't Support Robust Automated Testing
- Related Guidance