The solution that I have contains 7 applications that I deploy together.
When using the built in zip command the resulting deployment package is 225Mb but the same package compressed using 7zip is 95Mb.
The ultimate solution for me would actually be some kind of nuget restore on the deployed applications (a large portion of each app is shared libraries like Windsor, NHibernate, etc) but I'm not sure how that would work.
7zip could be an great external addin for Cake.
If you would want to use Nuget to solve your case you could do an small bootstrapper that uses nuget.exe (downloadable from https://www.nuget.org/nuget.exe), you can install either via a package.config or each package by id.
Syntax for installing from package.config:
nuget install -ExcludeVersion
Syntax for installing specific package:
nuget install Cake -ExcludeVersion
Full command line reference can be found on docs.nuget.org
You can see how Cake does it here
Does Cake run cross-platform or do I only have to support Windows when writing an addin? It seems easiest to require 7zip be installed on the machine and call out to the executable installed under Program Files.
We are working on Mono support, unfortunately Roslyn isn't fully Mono compatible yet, so we're having to do significant refactoring to support mono scripting.
An add-in it's just an assembly packaged and deployed via Nuget. And you can extend the DSL with extension methods following a certain pattern.
7zip is avail on Nuget, so what an add-in could do is check if it exists and if not just invoke Nuget to fetch it. The add-in could expose a couple of aliases to extend the Cake DSL.
@coxp a new Cake addin has been created with includes the ability to utilise other compression libraries: https://www.nuget.org/packages/Cake.Compression/ Hopefully this will give you what you need. For now, I am going to go ahead and close this issue. Feel free to re-open this issue if required.
For anyone stumbling across this issue: Cake.Compression has no support for 7zip.
Have a look at https://github.com/cake-contrib/Cake.7zip/
Most helpful comment
For anyone stumbling across this issue: Cake.Compression has no support for 7zip.
Have a look at https://github.com/cake-contrib/Cake.7zip/