Are there robust integration options for Clojure continuous integration?

I am trying to integrate clojure into a continuous build. Any suggestions for an included clojure system such as Jenkins that is able to do the work for me through the plugin? I saw some special tutorials, but not sure if there is a clear accepted method. I noticed that clojure itself is built using CI, and since it is a java dialect, I assume that if there are no such options, maybe I could wrap the clojure construct as a maven / ant task ...

+6
source share
4 answers

While Jenkins / Hudson is most widely used for Clojure projects, you can use any CI system that you like.

Clojure itself, all Contrib projects, and various open source projects use Maven to manage their builds and can thus be easily raised in Hudson / Jenkins. clojure-maven-plugin is what you are looking for to mirror such a setting.

You can also use Leiningen with Hudson / Jenkins (or indeed any other CI system), just trimming to lein as needed. There is a somewhat clever way to configure this through Jenkins himself here .

Finally, if you need ant, you can use clojure-ant-tasks .

+9
source

You want to do all the work in ant / maven / gradle, etc., because you want to be able to easily create your project locally , as well as in the CI system. As soon as you can create locally with a well-known build structure, you simply call the same tasks / tasks in Jenkins and its super-light at that moment, because Jenkins works wonderfully with most build frameworks like ant / maven / gradle.

+2
source

As a data point, I use:

  • Maven for creating polyglot Clojure + Java projects
  • GitHub for SCM
  • Travis CI for continuous integration based on the GitHub source.

The important point is that by doing the build work with Maven, you can easily connect to the standard Java CI tooling ecosystem. As for Travis CI, it’s just another Java project - Clojure is effectively seen as an additional Java library in terms of the build process. Here is travis.yml config:

 language: java jdk: - oraclejdk7 - openjdk7 - openjdk6 

Here is an example open source project using this approach:

+1
source

Lambda CD is probably what you want. It allows you to write assemblies and delivery pipelines in clojure. It is relatively new and seems to be becoming increasingly popular. http://www.lambda.cd/

0
source

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


All Articles