circle #112
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
name: Example workflow | |
on: | |
push: | |
branches: | |
- main | |
jobs: | |
clojure: | |
runs-on: ubuntu-latest | |
steps: | |
- name: Checkout | |
uses: actions/checkout@v3 | |
with: | |
token: ${{ secrets.GH_TOKEN }} | |
# 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: '17' | |
- name: Install clojure tools | |
uses: DeLaGuardo/setup-clojure@12.1 | |
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.11.1.1347 # 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.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: install node | |
uses: actions/setup-node@v4 | |
with: | |
node-version: 18 | |
cache: 'npm' | |
- name: Install shadow cljs | |
run: | | |
npm install | |
npm install -g shadow-cljs | |
shadow-cljs release prod | |
- name: Execute clojure code | |
run: | | |
java --version | |
clojure -version | |
git config --global user.name 'GitHub Actions' | |
git config --global user.email 'actions@github.com' | |
git add docs/js/main.js | |
git commit -m "Build artifacts [skip ci]" || echo "No changes to commit" | |
git checkout -b publish | |
git push --force origin publish | |
- name: Upload coverage reports to Codecov | |
uses: codecov/codecov-action@v3 | |
env: | |
CODECOV_TOKEN: ${{ secrets.CODECOV_TOKEN }} | |
# - name: Commit and Push Changes | |
# run: | | |
# git config --global user.name 'GitHub Actions' | |
# git config --global user.email 'actions@github.com' | |
# git add -A | |
# git diff --staged --quiet && echo "No changes to commit" && exit 0 | |
# git commit -m "Automated build commit [skip ci]" | |
# git push | |