2022-08-26 14:42:58 -06:00
wip
2020-08-20 11:39:44 +02:00
2021-12-01 17:38:39 +01:00
wip
2020-08-20 11:41:28 +02:00
2022-07-20 15:04:26 +02:00
wip
2020-08-20 11:39:44 +02:00
wip
2020-08-20 11:39:44 +02:00
wip
2020-08-20 12:57:19 +02:00
2019-10-04 11:41:15 +02:00
2022-07-20 15:04:26 +02:00
2022-07-20 15:04:26 +02:00
wip
2020-08-20 11:39:44 +02:00

setup-clojure

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.

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

      # 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@9.4
        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
          cmd-exe-workaround: 'latest' # Replaces `clojure` with `deps.clj` on Windows
          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 cljstyle version
        # cljstyle is not yet available for windows
        if: ${{ matrix.os != 'windows-latest' }}
        run: cljstyle version

      - name: Get zprint version
        run: zprint --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

Description
GitHub Action to provision clojure's most popular build tools for Linux, Mac OS X and Windows.
Readme MIT
Languages
TypeScript 99.3%
JavaScript 0.7%