Gofer

Common Patterns and Best Practices

These are the habits that make Gofer pipelines easy to run and easy to trust. Most of them come from the same facts: every task is its own container, possibly on a different machine, and Gofer only knows what you tell it. It also doesn't tie pipelines to a git repository.

Here's everything at a glance:

Writing Tasks

  • Make tasks safe to run twice.
  • Take configuration from environment variables.
  • Pin your image tags.
  • Keep your images lean.
  • Fail loudly.

Designing Pipelines

  • Keep things simple.
  • Use Any for cleanup and notifications.
  • Limit pipelines that can't overlap.
  • Keep your pipeline config next to your code.

Passing Data Between Tasks

  • Small values
  • Files and directories
  • Things that trip people up

Working with Git Repositories

  • Getting access
  • Getting the code

Secrets and Access

  • Prefer pipeline secrets over global ones.
  • Only give API tokens to tasks that need them.