This directory contains scripts to automate the creation, setup and deletion of
Skia's GCE Perf Server machine.


Directory Contents
==================

- vm_create_instance.sh
Creates a perf server instance in the specified $ZONE.

- vm_setup_instance.sh
Sets up the perf server with required packages and directories.

- vm_delete_instance.sh
Deletes the perf server instance in the specified $ZONE.

- vm_push_update.sh
Updates the code of the perf server running on skiaperf.com
