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 Heroku.
Integration will be supported by Git version control, a continuous integration service (CircleCI, GitLabs, GitHub Actions) and a deployment platform (Heroku).
Getting Started
Circle CI has a free plan with unlimited projects, so its easy to get started.
Sign up using an existing GitHub or Bitbucket account and login to the CircleCI dashboard.
In the CircleCI dashboard use Add Project to configure any of your shared Git repositories to run build pipelines using a .circleci/config.yml
file in the root of the Clojure.
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
There are a range of container images available, including Clojure specific container images, on which to run continuous integration worflows with.
Pre-configured images are typically faster than installing software on top a more generic image.
Recommended image for Clojure deps.edn projects is openjdk-11-tools-deps-1.10.1.727
The image contains OpenJDK 11 and the latest Clojure CLI tools installed, 1.10.1.727.
Add the following under docker: in your config.yml
- image: circleci/clojure:openjdk-11-tools-deps-1.10.1.727
References
- Dockerhub: CircleCI Clojure images
- GitHub: CircleCI-Public/cicleci-dockerfiles repository - review how docker images are constructed
- CircleCI Clojure image tags - json - programmatically process names of Clojure docker images