Prerequisites
This page explains how to set up your environment for using ClusterFuzz.
Requirements
Many features of ClusterFuzz depend on Google Cloud Platform services, but it’s possible to run it locally without these dependencies for testing purposes. See the Architecture page for more details.
Note: Local development is only supported on Linux platform.
Getting the code
Clone the ClusterFuzz repository to your machine by running the following command:
git clone https://github.com/google/clusterfuzz
cd clusterfuzz
git pull
We recommend that you use the latest release version of our code (rather than master branch) for stability reasons. You can check out a particular release using:
git checkout tags/vX.Y.Z
where X.Y.Z is the release version (for example, 1.0.1).
Installing prerequisites
Google Cloud SDK
Install the Google Cloud SDK by following the online instructions.
Log in to your Google Cloud account
Note: This is not necessary if you’re running ClusterFuzz locally.
If you’re planning to set up ClusterFuzz in production, you should authenticate your account with the gcloud
tool:
gcloud auth application-default login
gcloud auth login
Python programming language
Download Python 3.7, then install it. If you have Python installed already, you can verify its version by running python --version
.
We recommend building using python source from the official repo, as it installs the needed python headers and pip. Otherwise, make sure to explicitly install them.
Go programming language
Install the Go programming language.
Other dependencies
We provide a script for installing all other development dependencies on Linux and macOS.
Our supported systems include:
- Ubuntu (14.04, 16.04, 17.10, 18.04, 18.10)
- Debian 8 (jessie) or later
- Recent versions of macOS with homebrew (experimental)
To install the dependencies, run the script:
local/install_deps.bash
Loading pipenv
After you run the local/install_deps.bash
script, activate pipenv by running the following command:
pipenv shell
This loads all the Python dependencies in the current environment.
You can verify that everything works by running:
python butler.py --help