Setup Clojure
ActionsTags
(2)This action sets up Clojure tools environment for using in GitHub Actions.
All three major tools (Clojure CLI, leiningen and boot-clj) available for MacOS, Ubuntu and Windows based runners. Please look at Smoke Test Workflow file for compatibility matrix.
Here is a snippet for your workflow file:
name: Example workflow
on: [push]
jobs:
clojure:
strategy:
matrix:
os: [ubuntu-latest, macOS-latest, windows-latest]
runs-on: ${{ matrix.os }}
steps:
- name: Checkout
uses: actions/checkout@v3
# It is important to install java before installing clojure tools which needs java
# exclusions: babashka, clj-kondo and cljstyle
- name: Prepare java
uses: actions/setup-java@v3
with:
distribution: 'zulu'
java-version: '8'
- name: Install clojure tools
uses: DeLaGuardo/setup-clojure@13.0
with:
# Install just one or all simultaneously
# The value must indicate a particular version of the tool, or use 'latest'
# to always provision the latest version
cli: 1.10.1.693 # Clojure CLI based on tools.deps
lein: 2.9.1 # Leiningen
boot: 2.8.3 # Boot.clj
bb: 0.7.8 # Babashka
clj-kondo: 2022.05.31 # Clj-kondo
cljfmt: 0.10.2 # cljfmt
cljstyle: 0.16.626 # cljstyle
zprint: 1.2.3 # zprint
# Optional step:
- name: Cache clojure dependencies
uses: actions/cache@v3
with:
path: |
~/.m2/repository
~/.gitlibs
~/.deps.clj
# List all files containing dependencies:
key: cljdeps-${{ hashFiles('deps.edn') }}
# key: cljdeps-${{ hashFiles('deps.edn', 'bb.edn') }}
# key: cljdeps-${{ hashFiles('project.clj') }}
# key: cljdeps-${{ hashFiles('build.boot') }}
restore-keys: cljdeps-
- name: Execute clojure code
run: clojure -e "(+ 1 1)"
- name: Get leiningen version
run: lein -v
- name: Get boot version
run: boot -V
- name: Get babashka version
run: bb --version
- name: Get clj-kondo version
run: clj-kondo --version
- name: Get cljfmt version
run: cljfmt --version
- name: Get cljstyle version
# cljstyle is not yet available for windows and mac os
if: ${{ matrix.os == 'ubuntu-latest' }}
run: cljstyle version
- name: Get zprint version
run: zprint --version
For more application cases please check Smoke Test Workflow file
The scripts and documentation in this project are released under the MIT License
Setup Clojure is not certified by GitHub. It is provided by a third-party and is governed by separate terms of service, privacy policy, and support documentation.