Build, Test, and Analysis Tools for Skia Infrastructure
Go HTML JavaScript Python Shell Makefile Other
Switch branches/tags
Nothing to show
Clone or download
Fetching latest commit…
Cannot retrieve the latest commit at this time.
Permalink
Failed to load latest commit information.
am Alert for alert-to-pubsub send failures. Aug 8, 2018
android_compile [gold] Small fixes to make Gold work on K8s Aug 2, 2018
android_ingest Remove common.LogPanic. Jul 25, 2018
android_stats/go/android_stats Remove common.LogPanic. Jul 25, 2018
appengine_scripts/skia-tree-status Remove all Rietveld related code Jan 30, 2018
autoroll [autoroll] Log more info when sheriff lookup fails. Aug 16, 2018
bash Add SKIP_BUILD to build_docker.sh Jul 2, 2018
blamer Add exec.NewContext(), plumb context.Context everywhere Nov 27, 2017
chromeextensions Update Skia Troopers extension to look at both of our alert servers Jul 30, 2018
cmd [gold] Write tryjob result link to Gerrit Jun 29, 2018
comments Use import "context" everywhere. Oct 19, 2017
common-sk Revert "A better fix for infra-sk." Jul 10, 2018
contestk Remove common.LogPanic. Jul 25, 2018
coverage Remove common.LogPanic. Jul 25, 2018
cq_watcher Restrict all leasing endpoints except the get status endpoint Aug 15, 2018
ct [CTFE] remove references to ctfe_migratedb Aug 17, 2018
ct_pixel_diff Remove common.LogPanic. Jul 25, 2018
datahopper Ensure quarantined bots always get reported. Aug 13, 2018
debugger-assets Remove common.LogPanic. Jul 25, 2018
debugger Remove common.LogPanic. Jul 25, 2018
docker Leave the infra image running as user root. Jul 2, 2018
docserverk Remove common.LogPanic. Jul 25, 2018
ds [am.skia.org] The new alert manager. Aug 8, 2018
fiddlek Remove accidental circular symlinks Aug 2, 2018
flakiness/go Remove common.LogPanic. Jul 25, 2018
fuzzer [gold] Small fixes to make Gold work on K8s Aug 2, 2018
get_service_account Add exec.NewContext(), plumb context.Context everywhere Nov 27, 2017
git_cookie_authdaemon Make git_cookie_authdaemon build_release executable Jan 24, 2018
go Add CountLines to fileutil Aug 17, 2018
golden Fix race in dsutil Aug 17, 2018
grafana [prober] Don't follow redirects, check probe status based on first re… Aug 10, 2017
html-template-minifier Remove all package-lock.json files until we start using them. May 31, 2018
infra-sk infra-sk 0.2.0 release. Jul 30, 2018
infra Roll recipe dependencies (trivial). Aug 16, 2018
jsdoc Remove common.LogPanic. Jul 25, 2018
kube Port CQ Watcher over to skia-public Aug 1, 2018
leasing Restrict all leasing endpoints except the get status endpoint Aug 15, 2018
logmetrics Remove common.LogPanic. Jul 25, 2018
misc Remove common.LogPanic. Jul 25, 2018
monitoring Allow multiple data disks Oct 16, 2017
named-fiddles Revert "A better fix for infra-sk." Jul 10, 2018
notifier Remove common.LogPanic. Jul 25, 2018
pdfium Added README files to document pdfium usage Jul 11, 2016
perdiff Move (nearly) all glog calls to sklog and make Fuzzer use cloud logging Dec 20, 2016
perf Remove common.LogPanic. Jul 25, 2018
power Remove common.LogPanic. Jul 25, 2018
prober Remove common.LogPanic. Jul 25, 2018
proberk Add SSL probing to proberk Aug 16, 2018
prometheus Leasing server has been forklifted. Remove from old prometheus.yml Aug 15, 2018
promk Alert for alert-to-pubsub send failures. Aug 8, 2018
proxy Remove common.LogPanic. Jul 25, 2018
pulld Remove common.LogPanic. Jul 25, 2018
push Remove common.LogPanic. Jul 25, 2018
res [status] Back to old login for kubernetes Jun 20, 2018
scripts Fix bug in add_gce_scopes Aug 8, 2018
skfe Add SSL probing to proberk Aug 16, 2018
skolo [Skolo Win] Work around NVIDIA driver install issues. Aug 9, 2018
skottie skottie-internal needs creds on fetch() requests. Jul 27, 2018
status [task scheduler] Add "repo" filter to GetTasksFromDateRange Jul 17, 2018
statusv2/go [task scheduler] Add "repo" filter to GetTasksFromDateRange Jul 17, 2018
swarming_logger Remove common.LogPanic. Jul 25, 2018
task_scheduler Remove common.LogPanic. Jul 25, 2018
tools Add swarming_token app to retrieve a token and write to a file Jan 29, 2018
tracedb [gold] Fixes to make lottie-gold work Aug 16, 2018
webtools [docserver] Fix issues with running locally. Jan 4, 2018
.gitattributes [Skolo Win] Try another approach to fix "Can't log in" issue. Apr 19, 2018
.gitignore [gold] Getting traceserver ready for K8s Jul 26, 2018
DATASTORE.md [ds] Consolidate index.yaml to a single file. Jan 29, 2018
DEPS Switch recipe to use bot_update Oct 26, 2016
LICENSE Start loading the BigQuery data and serving it to the UI. Jun 16, 2014
Makefile Remove datahopper_internal and all buildbot-related stuff Oct 11, 2017
PRESUBMIT.py Presubmit: blacklist .recipe_deps Jun 22, 2018
PRIVACY_POLICY.md Add a placeholder for a privacy policy. Apr 11, 2018
README.md go generate: Update instructions and follow them. Nov 14, 2017
STYLEGUIDE.md Add naming note to styleguide Aug 29, 2016
codereview.settings Changing CODE_REVIEW_SERVER breaks Rietveld uploads Sep 9, 2016
launch.md Use same app name for cloud logging and metrics. Mar 6, 2018
run_unittests Re-implement run_unittests in Go, use goroutines to test in parallel Jun 23, 2015
run_unittests.go Test subdirectories serially. Aug 14, 2018
whitespace.txt test upload Apr 11, 2018

README.md

Skia-Buildbot Repository

This repo contains infrastructure code for Skia.

Getting the Source Code

The main source code repository is a Git repository hosted at https://skia.googlesource.com/buildbot. Although it is possible to check out this repository directly with git clone or using gclient fetch, it is preferred to use go get so that the code is arranged correctly for Go. If this is your first time working on Go code, read about the GOPATH environment variable. Make sure that $GOPATH/bin comes before /usr/bin in your PATH. If you have GOPATH set, run:

$ go get -u -t go.skia.org/infra/...

This fetches the repository into your $GOPATH directory along with all the Go dependencies. Note: go.skia.org is a custom import path and will only work if used like the examples here.

Install Node.js (not as root) and add the bin dir to your path. Optionally run npm install npm -g, as suggested by the npm getting started doc.

Install other dependencies:

$ sudo apt-get install python-django
$ go get -u github.com/kisielk/errcheck \
  golang.org/x/tools/cmd/goimports \
  go.chromium.org/luci/client/cmd/isolate
$ npm install -g polylint bower

Build from GOPATH:

$ cd $GOPATH/src/go.skia.org/infra/
$ make all

Generated Code

Some code is generated using go generate with external binaries. First, install the version of protoc referenced in the asset creation script and ensure it is on your PATH before other versions of protoc.

Install the necessary go packages:

$ go get -u \
  github.com/golang/protobuf/protoc-gen-go \
  golang.org/x/tools/cmd/stringer \
  google.golang.org/grpc

To generate code run in this directory:

$ go generate ./...

Database Setup for Testing

Tests which use the database package's testutils require you to have a MySQL instance running with a database named "sk_testing" and users called "readwrite" and "test_root" with appropriate permissions for sk_testing. The 'setup_test_db' script in 'go/database' is included for convenience in setting up this test database and user.

Go tests require a local installation of MySQL. For a Debian based distro:

$ sudo apt-get install mysql-client mysql-server

Leave the root password blank.

Then, to set up local versions of the production databases:

$ cd $GOPATH/src/go.skia.org/infra/go/database
$ ./setup_test_db

Running unit tests

Install Cloud SDK.

The installed python-django version must be >= 1.7. Run the following to update:

$ sudo pip install Django --upgrade

Use this command to run the presubmit tests:

$ ./run_unittests --small