Files
weave-scope/README.md
Daniel Holbach 5e3c8ab358 Squashed 'tools/' changes from 2bbc9a08..ec369f58
ec369f58 Merge pull request #153 from dholbach/drop-email
ef7418d3 weave-users mailing list is closed: https://groups.google.com/a/weave.works/forum/#!topic/weave-users/0QXWGOPdBfY
6954a578 Merge pull request #144 from weaveworks/golang-1.11.1
9649eed1 Upgrade build image from golang:1.10.0-strech to 1.11.1-strech
59263a71 Merge pull request #141 from weaveworks/update-context
e235c9b0 Merge pull request #143 from weaveworks/gc-wks-test-vms
c865b4cc scheduler: please lint/flake8
da61568d scheduler: please lint/yapf
ce9d78e3 scheduler: do not cache discovery doc
e4b78733 scheduler: add comment about GCP projects' IAM roles needed to list/delete instances and firewall rules
ff7ec8e6 scheduler: add comment about CircleCI projects' access via the API
2477d98c scheduler: deploy command now sets the current datetime as the version
5fcd8809 scheduler: pass CircleCI API token in for private projects
6b8c3231 scheduler: more details in case of failure to get running builds from CircleCI
0871aff8 scheduler: downgrade google-api-python-client from 1.7.4 to 1.6.7
b631e7f1 scheduler: add GC of WKS test VMs and firewall rules
a923a320 scheduler: document setup and deployment
013f5082 scheduler: lock dependencies' versions
6965a4a4 Merge pull request #142 from weaveworks/fix-build
23298c6f Fix golint expects import golang.org/x/lint/golint
482f4cd0 Context is now part of the Go standard library

git-subtree-dir: tools
git-subtree-split: ec369f58d7ac85375bad7d0f02a1462cdad290f9
2019-01-08 08:10:12 +05:30

3.1 KiB

Weaveworks Build Tools

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

  • bazel-rules: Bazel build rules used in our projects
  • 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
curl -fsSLo shfmt https://github.com/mvdan/sh/releases/download/v1.3.0/shfmt_v1.3.0_linux_amd64
chmod +x shfmt

(we pin that version, and it doesn't build from the source repo any more)

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.

Getting Help

If you have any questions about, feedback for or problems with build-tools:

Your feedback is always welcome!