silverstripe-archive / deploynaut

A web based tool for performing deployments
BSD 3-Clause "New" or "Revised" License
71 stars 26 forks source link

.tar.gz downloads for releases (or at least tags) #93

Open ss23 opened 9 years ago

ss23 commented 9 years ago

As a deployer of locked-down environment I want to be able to download a .tar.gz of a release package so that I can build a rigorous, automated deployment process even when deploynaut can't connect to the production server

Acceptance criteria:

Note that with the new package generation work by @sminnee this is a lot easier

sminnee commented 9 years ago

Yeah - the way I would approach this is to have an interface that can be added to deployment backends that provide "resources". I'd allow support for multiple resources (e.g. an AWS deployment backend might have a few things?), hence the pair of functions:

interface ProvidesDownloadableResources {
   /* Return the list of downloadable resources available for the given SHA. Return a map of identifier to title */
   function getDownloadableResourcesList();

   /* returns the local filename of the downloadable asset, generating it if needed */
   getDownloadableResourceFilename($sha, $identifier); 

}

In the UI, we can show the download links based on whether the backend implements the interface and whether getDownloadableResourcesList() returns anything. For example, a CapistranoDeploymentBackend that doesn't have a PackageGenerator wouldn't provide a downloadable resource.