I would like to offer a continuous integration service (I'm planning to use hudson
, but the solution should work for others as well) with a web interface where a user will define a SCM URL (e.g. a git
URL) and the workspace/source root which is used for building should be cleaned (at least optionally) before building. This requires are lot of repeated checkouts which I would like to cache (i.e. make them be read from local storage instead of being fetched from a remote resource).
Different SCMs (git
, svn
and mercurial/hg
) use different protocols (HTTP, HTTPS, git
, etc.), some of them can be cached (HTTP), others generally not (HTTPS without using a man-in-the-middle which is inacceptable for a trustworthy service imo - which I want to provide) or specifically not (I didn't find any git
protocol cache servers).
Caching HTTP isn't a problem, but few git
hoster support it or redirect to HTTPS. I would like to support one protocol which reliably caches checkouts and suggest the user to use it.
Redirection via a SOCKS proxy can be achieved for HTTP and git
protocol, but that doesn't allow caching. Other protocols like IGD can't be used for caching neither.
hudson
already does? 3.2.2 removes the checkout (at leastgit
clones) if the option to clean the workspace (which I mentioned in my question) is activated. – Karl Richter Jun 27 '15 at 18:13