Continuous Integration

Continous integration #

go-swagger/go-swagger #

Enabled CI engines and bots and apps:

  • GitHub Actions (Linux, MacOS, Windows)
  • Codecov
  • DCO (enforce signed-off commits)
  • WIP (blocks PRs with title WIP/do not merge, etc…)

Build #

The CI pipeline builds the swagger binary and runs a few spec validation commands: this is a smoke test.

Test #

Codecov results are not blocking.

We run unit tests on the two most recent go versions of the 3 platforms above. Tests run with race detection: go test -race.

Integration tests run a real swagger CLI command to generate servers, clients and models. The CI pipeline uses this test tool to iterate over the swagger spec fixtures: hack/codegen_nonreg_test.go.

Integration tests are divided in 2 groups:

  • “canary” specs: a bunch of rather larger real life specs (e.g. kubernetes, docker, quay.io…)
  • fixtures: many trickier specs intended to exercise the code generation

The go test program codegen_nonreg_test.go runs on CI with various generation options. You may alos run it manually on your local environment to explore more generation options (expand spec, flatten, etc…).

Releases #

Releases are cut with a separate workflow to build artifacts and bake docker images.

Documentation update #

A github action takes care of generating this web site. It builds a github pages artifact that is deployed.

go-openapi/... #

Enabled CI engines and apps:

  • GitHub Actions (Linux, MacOS, Windows)
  • Codecov
  • DCO
We are trying to keep the CI configuration in all go-openapi repos aligned.

Copyright 2015-2024 the go-swagger maintainers. This documentation is under an Apache 2.0 license.

Site built with HUGO using hugo-book