Intented use for `publish`, `export` and `push`

I am wondering what the intended use cases for these three different commands are and how they differ.

I have used guild export for copying runs locally, guild push for pushing to remote storage locations. I’ve never used the guild publish command.

@garrett can you maybe shed some light on the different intended use cases for these three commands?

Good question!

export is a straight copy of the run directory. This is used to create archives, either to cleanup you working directory (e.g. to focus on a active runs without complicating commands with runs that you’re not currently interested in) and to backup runs to a file system.

  • push is a remote operation, so Guild is going to copy or move runs to another system. Guild supports a variety of remotes including S3, Azure, ssh, and even GitHub (via gists). Use this when you want to backup or share runs across systems.

  • publish generates an HTML report of runs. Use this to share run results with others. Note that run directories are not copied in this case.

So high level differences:

  • Use export to archive runs to a local system directory
  • Use push to copy or move runs to other systems
  • Use publish to generate an HTML report of runs