Continuous grails application deployment

I am working on a grails application and regularly patch hotfixes on a remote server. I am using jenkins with the Grails plugin for automation.

My point is this:

In most cases, I fix several classes without major changes to the application (such as a new database schema, new plugins ....). However, every time I create a patch, I have to load the ssh trough with a 75 mm military file, which takes 15 to 20 minutes. Most data are not required (i.e. all packaged jars). It will be enough to load only fresh compiled classes from WEB-INF/classes/ and reload the servlet container (in my case, the pier).

Has anyone experienced this, preferably with the Jenkins?

+4
source share
4 answers

I remember this topic on the mailing list ...

http://grails.1312388.n4.nabble.com/Incremental-Deployment-td3066617.html

... they recommend using rsync or xdelta3 only for transferring updated files. I have not tried it, but can it help you?

+1
source

Check the nojars argument for the warfare: http://www.grails.org/doc/1.3.7/ref/Command%20Line/war.html

This way you can put all of your .jars (which are usually the largest files inside .war) in another directory on the server and simply reference that directory in your Jetty path.


Or you can write a shell script to explode the .war file (after all, it's just a regular .zip file), add compiled classes and then repack it.

+2
source

You can try using CloudBees for continuous delivery releases. They also use the delta to load your changes, and deployments do not affect the user interface at all.

An easy-to-use plugin is available to make the process seamless from your Grails application and in the Jenkins build. I wrote a blog post on how to make it all work easily.

+2
source

Perhaps Cloudfoundry Micro Cloud is an option, the deployment just carries the delta, not the entire war file.

+1
source

Source: https://habr.com/ru/post/1381266/


All Articles