Skip to content

GitHub Action to provision clojure's most popular build tools for Linux, Mac OS X and Windows.

License

Notifications You must be signed in to change notification settings

DeLaGuardo/setup-clojure

Use this GitHub action with your project
Add this Action to an existing workflow or create a new one
View on Marketplace

Folders and files

NameName
Last commit message
Last commit date

Latest commit

d3f93a4 · Jun 16, 2022
Jun 16, 2022
Jun 16, 2022
Jun 16, 2022
Jun 16, 2022
Aug 20, 2020
Dec 1, 2021
Aug 20, 2020
Jun 1, 2021
Aug 20, 2020
Aug 20, 2020
Oct 4, 2019
Jun 16, 2022
Jun 16, 2022
Aug 20, 2020
Jun 16, 2022
Jun 16, 2022
Aug 20, 2020

Repository files navigation

setup-clojure

This action sets up Clojure tools environment for using in GitHub Actions.

  • Clojure CLI
  • Leiningen
  • boot-clj
  • Babashka
  • Clj-kondo
  • cljstyle

All three major tools available for MacOS and ubuntu based runners, Leiningen and Clojure CLI also available on Windows

Usage

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

      - name: Prepare java
        uses: actions/setup-java@v3
        with:
          distribution: 'zulu'
          java-version: '8'

      - name: Install clojure tools
        uses: DeLaGuardo/setup-clojure@7.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
          cljstyle: 0.15.0      # cljstyle

      - name: Execute clojure code on Linux and MacOS
        if: ${{ matrix.os != 'windows-latest' }}
        run: clojure -e "(+ 1 1)"
        shell: bash

      - name: Execute clojure code on Windows
        if: ${{ matrix.os == 'windows-latest' }}
        run: clojure -e "(+ 1 1)"
        shell: powershell
        
      - name: Get leiningen version
        run: lein -v
        
      - name: Get boot version
        # Boot is not yet available for windows
        if: ${{ matrix.os != 'windows-latest' }}
        run: boot -V

      - name: Get babashka version
        run: bb --version

      - name: Get clj-kondo version
        run: clj-kondo --version

      - name: Get cljstyle version
        # cljstyle is not yet available for windows
        if: ${{ matrix.os != 'windows-latest' }}
        run: cljstyle version

For more application cases please check Smoke Test Workflow file

License

The scripts and documentation in this project are released under the MIT License