grafanalib/tools
2017-07-28 14:20:45 +01:00
..
build Merge commit '46b8099b5cb2a9d8c97da62fd2a3b409f69292c7' into build-tools-20170728 2017-07-28 14:20:45 +01:00
config_management Merge commit '46b8099b5cb2a9d8c97da62fd2a3b409f69292c7' into build-tools-20170728 2017-07-28 14:20:45 +01:00
cover Merge commit '0c4ede738a89915e771a18474dfbe96d503d6aa8' as 'tools' 2016-12-14 08:44:18 +00:00
dependencies Merge commit '46b8099b5cb2a9d8c97da62fd2a3b409f69292c7' into build-tools-20170728 2017-07-28 14:20:45 +01:00
integration Merge commit '46b8099b5cb2a9d8c97da62fd2a3b409f69292c7' into build-tools-20170728 2017-07-28 14:20:45 +01:00
provisioning Merge commit '46b8099b5cb2a9d8c97da62fd2a3b409f69292c7' into build-tools-20170728 2017-07-28 14:20:45 +01:00
runner Merge commit '46b8099b5cb2a9d8c97da62fd2a3b409f69292c7' into build-tools-20170728 2017-07-28 14:20:45 +01:00
scheduler Merge commit '46b8099b5cb2a9d8c97da62fd2a3b409f69292c7' into build-tools-20170728 2017-07-28 14:20:45 +01:00
socks Merge commit '46b8099b5cb2a9d8c97da62fd2a3b409f69292c7' into build-tools-20170728 2017-07-28 14:20:45 +01:00
.gitignore Merge commit '46b8099b5cb2a9d8c97da62fd2a3b409f69292c7' into build-tools-20170728 2017-07-28 14:20:45 +01:00
circle.yml Merge commit '46b8099b5cb2a9d8c97da62fd2a3b409f69292c7' into build-tools-20170728 2017-07-28 14:20:45 +01:00
files-with-type Merge commit '0c4ede738a89915e771a18474dfbe96d503d6aa8' as 'tools' 2016-12-14 08:44:18 +00:00
image-tag Merge commit '46b8099b5cb2a9d8c97da62fd2a3b409f69292c7' into build-tools-20170728 2017-07-28 14:20:45 +01:00
lint Merge commit '46b8099b5cb2a9d8c97da62fd2a3b409f69292c7' into build-tools-20170728 2017-07-28 14:20:45 +01:00
publish-site Merge commit '0c4ede738a89915e771a18474dfbe96d503d6aa8' as 'tools' 2016-12-14 08:44:18 +00:00
push-images Merge commit '46b8099b5cb2a9d8c97da62fd2a3b409f69292c7' into build-tools-20170728 2017-07-28 14:20:45 +01:00
README.md Merge commit '46b8099b5cb2a9d8c97da62fd2a3b409f69292c7' into build-tools-20170728 2017-07-28 14:20:45 +01:00
rebuild-image Merge commit '0c4ede738a89915e771a18474dfbe96d503d6aa8' as 'tools' 2016-12-14 08:44:18 +00:00
sched Merge commit '46b8099b5cb2a9d8c97da62fd2a3b409f69292c7' into build-tools-20170728 2017-07-28 14:20:45 +01:00
shell-lint Merge commit '0c4ede738a89915e771a18474dfbe96d503d6aa8' as 'tools' 2016-12-14 08:44:18 +00:00
test Merge commit '46b8099b5cb2a9d8c97da62fd2a3b409f69292c7' into build-tools-20170728 2017-07-28 14:20:45 +01:00

Weaveworks Build Tools

Included in this repo are tools shared by weave.git and scope.git. They include

  • build: a set of docker base-images for building weave projects. These should be used instead of giving each project its own build image.
  • provisioning: a set of Terraform scripts to provision virtual machines in GCP, AWS or Digital Ocean.
  • config_management: a set of Ansible playbooks to configure virtual machines for development, testing, etc.
  • cover: a tool which merges overlapping coverage reports generated by go test
  • files-with-type: a tool to search directories for files of a given MIME type
  • lint: a script to lint go, sh and hcl files; runs various tools like golint, go vet, errcheck, shellcheck etc
  • rebuild-image: a script to rebuild docker images when their input files change; useful when you using docker images to build your software, but you don't want to build the image every time.
  • shell-lint: a script to lint multiple shell files with shellcheck
  • socks: a simple, dockerised SOCKS proxy for getting your laptop onto the Weave network
  • test: a script to run all go unit tests in subdirectories, gather the coverage results, and merge them into a single report.
  • runner: a tool for running tests in parallel; given each test is suffixed with the number of hosts it requires, and the hosts available are contained in the environment variable HOSTS, the tool will run tests in parallel, on different hosts.
  • scheduler: an appengine application that can be used to distribute tests across different shards in CircleCI.

Requirements

  • lint requires shfmt to lint sh files; get shfmt with go get -u gopkg.in/mvdan/sh.v1/cmd/shfmt

Using build-tools.git

To allow you to tie your code to a specific version of build-tools.git, such that future changes don't break you, we recommendation that you git subtree this repository into your own repository:

git subtree add --prefix tools https://github.com/weaveworks/build-tools.git master --squash

To update the code in build-tools.git, the process is therefore:

  • PR into build-tools.git, go through normal review process etc.
  • Do git subtree pull --prefix tools https://github.com/weaveworks/build-tools.git master --squash in your repo, and PR that.