Skip to content

Circle CI continuous integration serviceλ︎

Circle CI is a service to build, test and deploy projects. CircleCI uses docker images to run its workflow, either in the cloud or locally.

Projects can be build, tests run, artifacts (uberjars) created and applications deployed to services such as AWS, Render.com, etc.

Integration will be supported by Git version control, a continuous integration service (CircleCI, GitLabs, GitHub Actions) and a deployment platform (Heroku).

Getting Startedλ︎

Sign up using a GitHub or Bitbucket account and login to the CircleCI dashboard.

Add Project in the CircleCI dashboard to configure a shared Git repository and run build pipelines using a .circleci/config.yml file in the root of the Clojure project.

Every time changes are pushed to the shared code repository (GitHub, Bitbucket), CirceCI will run the pipeline for the project and show the results.

Clojure imagesλ︎

Clojure specific container images are available for several versions of Java and Clojure. Pre-configured images are typically faster than installing software on top a more generic image.

cimg/clojure:1.10 is the recommended image for Clojure projects. The image contains OpenJDK 17 and the latest version of Clojure CLI, Leiningen and Babashka

Add the following under the docker: key in the config.yml

- image: cimg/clojure:1.10

The CircleCI Clojure Language guide walks through the sections of the yaml configuration in detail.

Check Clojure version

clojure -Sdescribe shows configuration information for the Clojure CLI tool as a hash-map, with the :version key associated with the exact install version.

lein version shows the current version of Leiningen install on your development environment.

java -version shows the current version of the Java installation.

Referencesλ︎

CircleCI Clojure Language guide CircleCI Clojure image tags - json CircleCI Clojure images CircleCI dockerfiles repository