- Use https://yaml-online-parser.appspot.com/ to make sure the yaml file is valid.
  https://lint.travis-ci.org/ is recommended elsewhere but does not give helpful
  error reports.
- Make sure all of your "-" lines start on the same column
- Use bash scripts for `before_install` and `script` or any part that
  has conditional statements
   - Make sure they are "executable" (chmod +x)
   - Use the following header to enable some local flags:

   ```bash
     #!/usr/bin/env bash
     set -ev
   ```

   - Use the following footer to turn off the flags after the script:

   ```
     set +ev
   ```

- The `-e` flag ensures that the script exits on non-zero exit from a command.
- The `-v` flag will print out the command as it is read.
- The `-x` flag will print out the expanded parsed command, as well as the PS4.
  which can be quite verbose. Use this when debugging.
- Use the `retry` bash function from `before_install.sh` before a command to
  have it try 3 times before failing.
- Use `pip install --retries N` for retrying package downloads.
- Use the `section` function to start a folded section of the script.
  Section names must have underscores or dots instead of spaces and must be
  accompanied by a corresponding `section_end` call.
- Feel free to cancel a build rather than waiting for it to go to completion
  if you have made a change to that branch.
- A VM with 64bit Ubuntu 14.04 is a huge help for debugging.
