cake-contrib / Cake.ResxConverter

Cake addin for ResxConverter
https://cakebuild.net/extensions/cake-resxconverter/
MIT License
0 stars 5 forks source link

Start using Cake.Recipe #3

Open gep13 opened 7 years ago

gep13 commented 7 years ago

@jzeferino @louisfischer are you guys familiar with the package of scripts that I have created called Cake.Recipe?

This is used on almost all the addin's within the Cake-Contrib Organisation, which means there are consistent builds across all the repositories, and when a change is made to Cake.Recipe, it can be applied across all the repositories.

luisgoncalves commented 7 years ago

I don't think we are. We'll take a look when we have time.

Does it have any minimum requirements regarding the Git branching model?

gep13 commented 7 years ago

@luisgoncalves Cake.Recipe works best when you are using GitFlow, which you seem to be set up to use, but it is not a requirement.

Would you be interested in me putting a PR together to add Cake.Recipe to this repo?

jzeferino commented 7 years ago

@gep13 can you elaborate a bit more whats the benefits of Cake.Recipe? What are the implications of using it? You can PR it.

gep13 commented 7 years ago

@jzeferino sure thing....

Over the course of creating around 10 addins, and then helping to support another 40 within the Cake Contrib Organisation, it became clear that the builds that are being done are almost exactly the same (only a few minor differences between each). When adding a new step into the build process (for example sending a notification to Gitter or Twitter when a release succeeds), that functionality had to be added to all repositories. Cake.Recipe is a collection of Cake Build Tasks which are deployed as a NuGet Package, and which is restored when the build starts. As a result, a new build step (for example, the addition of GitLink to allow source code debugging of addins) can be added in one place, and automatically pushed out to all repositories without needing to change things in lots of places.

Cake.Recipe including all of the major builds steps that are typically required, i.e:

All of the above are configurable in what I refer to as a setup.cake file, so you can choose which ones to run and which ones to not. The tasks are also based on some conventions, i.e. where you place certain files on the file system within the project, which can also control which tasks are executed.

Please let me know if you have any questions.

luisgoncalves commented 7 years ago

So, if I understood correctly, it's just a matter of installing the NuGet package and adding the setup.cake file with the appropriate flags and parameters. Sounds good!

gep13 commented 7 years ago

@luisgoncalves yes, that pretty much sums it up. I might have to move some files around on the file system to put them into the correct convention driven folder as well.

jzeferino commented 7 years ago

@gep13 feel free to PR with the first implementation. Thanks for the contribution.

gep13 commented 7 years ago

@jzeferino yes, I haven't forgotten about this, it is on my list of things to do.