This document discusses pipelines for continuous delivery. It describes how pipelines can incorporate progressive testing from unit tests to system integration tests. A typical pipeline includes stages for committing code, building, running unit tests, code analysis, and creating build artifacts. Deployment testing stages prepare environments, deploy artifacts, and run smoke and UI tests. Best practices are to keep everything in source control and replicate production. The document also discusses how to structure pipelines for multiple applications and federated systems.
5. The Testing Pyramid
Pipeline for
Progressive Testing
The Delivery Pipeline
Faster
Feedback
Broader
Scope
Faster
Feedback
Increasing
Confidence
6. The system being developed
Pipeline for
Progressive Testing
Application
A
Application
B
Other Services
7. The system being developed
Pipeline for
Progressive Testing
Application
A
Application
B
Other Services
Unit Tests
Each unit test
covers one app
component
8. The system being developed
Pipeline for
Progressive Testing
Unit Tests
Other components are
stubbed
Each unit test covers
one app component
12. Pipeline for
Progressive Testing
System tests cover the set of applications developed by
the team, running together, mocking connections to
external services
System Tests
27. Pipeline Design
Pattern
Best practices for pipeline stages
Typical pipeline stages
Keep everything in source control
Only build artefacts once
Replicate production constraints
Deploy the same way every time
Keep it simple, implement only those
stages that make sense for your system
34. Pipeline Design
Pattern
Joining multiple applications
Typical pipeline stages
Pipeline progression
Joining multiple
applications
Application A
Application B
Application
Testing Complete
Application
Testing Complete
Integration
Testing
If tests fail for application
A, application B can still
proceed using the last
“good” version of A
LIVE
35. Pipeline Design
Pattern
Federated pipelines
Typical pipeline stages
Pipeline progression
Joining multiple
applications
Pre-release
testing
Provider
Provider team could host instances for testing…
Consumer
36. Pipeline Design
Pattern
Federated pipelines
Typical pipeline stages
Pipeline progression
Joining multiple
applications
Pre-release
testing
Provider
Provider team could
host instances for
testing…
Consumer
LIVE
Consumer contract tests
…or provide packages
for deployment by the
Consumer team
38. LEARN MORE
Deploy a great product faster.
Agile teams deliver working software early and
often.
Go automates and streamlines the build-test-
release cycle for worry-free, continuous delivery
of your product.
Share this ebook.
Visit our Continuous Delivery Channel for more
posts like this.