liveBook · Manning

Pipeline

As explained in Shipping Go: Develop, deliver, discuss, design, and go again

A software delivery pipeline is an ordered set of automated stages that processes code from a change through validation and delivery.

A team needs to demo a useful service tomorrow, then let other developers extend it. Waiting until the service is complete to decide how to build, check, and ship it makes that first delivery harder. A software delivery pipeline gives each small change a repeatable path from code to feedback and a deliverable artifact. section 2.0 section 11.4.3

Start the pipeline early, even before there is much application code. Put the project in a central repository, document how contributors set it up, and automate the build. Checking in code should trigger checks that tell the developer whether it compiles or meets quality expectations. A failure prompts a fix; a successful run can produce something ready to deliver. section 1.3.1 section 1.2.1 section 2.0

Keep the path small enough to use and improve:

  • Define a small increment that can reach someone who needs it, rather than letting work in progress accumulate. section 1.2
  • Automate the checks needed for that increment, and make failures visible to the developer. section 1.2.1
  • Deliver an artifact suited to the product: a deployed service, a downloadable binary, or an update. section 11.4.3

A first working increment

For a hello API, a one-day milestone calls for onboarding instructions, a simple response, unit tests, and a run outside the development machine. After adding a Go endpoint, a developer can build and run it locally, push the change, and inspect the GitHub Actions run. The pipeline produces a downloadable binary. It is not the finished translation service, but it is something a teammate can integrate with or a customer can see in a demo. section 2.0 section 2.5

Listing 2.1 README.md
# Hello API
 
## Release Milestones
 
### V0 (1 day)
- [ ] Onboarding Documentation
- [ ] Simple API response (hello world!)
- [ ] Unit tests
- [ ] Running somewhere other than the dev machine
 
### V1 (7 days)
- [ ] Create translation endpoint
- [ ] Store translations in short-term storage
- [ ] Call existing service for translation
- [ ] Move towards long-term storage

The README milestone checklist makes the first deliverable and the later translation work distinct, so the pipeline can support feedback before the larger service is finished. section 2.0

The stages are not a fixed prescription. Product needs determine how elaborate each check and delivery step should be. Keep the loop running, improve it with the team, and change the destination as you learn how people use the product. The dependable rule is to turn code into a checked, deliverable artifact. section 1.2.1 section 11.4.3 section 11.7

How Shipping Go: Develop, deliver, discuss, design, and go again covers it

How deep it goes
Traces initial setup through automated checks and a produced binary, while treating individual phases as adaptable rather than prescribing a universal configuration.
Examples
Uses a hello API, a README milestone checklist, a Go endpoint, and a GitHub Actions binary.
What it assumes
Assumes familiarity with source code and command-line project setup while starting pipeline setup before application code is written.
What you can do after
Build it from scratch: establish a basic repository-to-artifact path, then extend its checks and delivery steps as needs become clearer.
How it connects
Connects continuous integration, continuous testing, automated delivery, work in progress, and customer feedback.

Also explained in

Compare how 48 books explain pipeline →

Related concepts

This explainer was generated by Manning's knowledge graph from the text of Shipping Go: Develop, deliver, discuss, design, and go again. The section links point to the parts of the book it draws on.