We've migrated the production/staging Boulder instances to builds using Go 1.10.3 and can now remove the Go 1.10.2 builds from the travis matrix and the `tag_and_upload.sh` Boulder tools script. |
||
|---|---|---|
| .. | ||
| Dockerfile.tmpl | ||
| README.md | ||
| build.sh | ||
| tag_and_upload.sh | ||
README.md
Boulder-Tools Docker Image Utilities
In CI and our development environment we do not rely on the Go environment of
the host machine, and instead use Go installed in a container. To simplify
things we separate all of Boulder's build dependencies into its own
boulder-tools Docker image.
Go Versions
Rather than install multiple versions of Go within the same boulder-tools
container we maintain separate images for each Go version we support.
When a new Go version is available we perform serveral steps to integrate it to our workflow:
- We add it to the
GO_VERSIONSarray intag_and_upload.sh. - We run the
tag_and_upload.shscript to build, tag, and upload aboulder-toolsimage for each of theGO_VERSIONS - We update
.travis.yml, adding the new Go version to thegosection.
After some time when we have spot checked the new Go release and coordinated
a staging/prod environment upgrade with the operations team we can remove the
old GO_VERSIONS entries and delete their respective build matrix items.