liveBook · Manning

Continuous integration

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

Continuous integration is a software development practice in which code changes are frequently merged into a shared codebase and automatically built and verified.

A small service may need to be demonstrated tomorrow, even though its full feature set will take longer. Continuous integration helps the team work in small increments: check in a change, let an automated pipeline build and check it, then use the result to decide what to fix or build next. A failed compile or quality check is feedback, not a reason to wait until the end of the project to integrate. section 2.0 section 1.2.1

Set up a short path from code to feedback:

  • Record the first deliverable in a README: a simple API response, unit tests, onboarding documentation, and a way to run outside the developer’s machine. section 2.0
  • Keep product code, test code, and deployment or infrastructure definitions together so the repository describes how the product is built. Exclude generated binaries rather than treating them as source. section 2.4
  • Have the pipeline process checked-in code. It can report a failure, or produce an artifact that others can try while development continues. section 1.2.1 section 2.5

A first useful slice

Start with a Go HTTP service whose `/hello` endpoint returns `{"language":"English","translation":"Hello"}`. Commit and push the change, inspect the pipeline run, then download and run its `api` binary. A teammate can begin integrating against that response, or a customer can see a demo, before translation becomes dynamic. section 2.5

Figure 2.5 Similar to the manufacturing process, we can assemble our source code into a product through an integration layer to then be shipped to a customer.

The assembly diagram shows the intended flow: source code enters an integration layer and becomes a product that can be shipped. section 2.4

Keep the loop short. A single repository simplifies running integration tests after a build, though other repository arrangements may suit other teams. The aim is not a perfect first release; it is a working increment that can be checked, shared, and improved. section 2.4 section 2.5

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

How deep it goes
Works through repository organization and an initial pipeline result, but does not specify pipeline configuration in the supplied evidence.
Examples
Uses a Go hello API, README milestones, a Git push, and a downloadable pipeline-built binary.
What it assumes
Assumes basic terminal, Git, and Go familiarity while demonstrating repository setup and a minimal HTTP service.
What you can do after
Build it from scratch as a minimal repository-to-artifact workflow, then inspect pipeline feedback and iterate.
How it connects
Connects source repositories, automated builds, integration tests, quality checks, and delivery.

Also explained in

Compare how 3 books explain continuous integration →

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.