CI Pipeline (deployed with Control Tower!)
To build and test you'll need:
- Golang 1.11+
- to have installed
github.com/kevinburke/go-bindata
control-tower
uses golang compile-time variables to set the release versions it uses. To build locally use the build_local.sh
script, rather than running go build
.
You will also need to clone control-tower-ops
to the same level as control-tower
to get the manifest and ops files necessary for building. Check the latest release of control-tower
for the appropriate tag of control-tower-ops
Tests use the Ginkgo Go testing framework. The tests require you to have set up AWS authentication locally.
Install ginkgo and run the tests with:
go get github.com/onsi/ginkgo/ginkgo
ginkgo -r
go get github.com/onsi/ginkgo/ginkgo
ginkgo -r
Go linting, shell linting, and unit tests can be run together in the same docker image CI uses with ./run_tests_local.sh
. This should be done before committing or raising a PR.
The pipeline listens for new patch or minor versions of manifest.yml
and ops/versions.json
coming from the control-tower-ops
repo. In order to pick up a new major version first make sure it exists in the repo then modify tag_filter: X.*.*
in the control-tower-ops
resource where X
is the major version you want to pin to.