Skip to content

Merge pull request #11 from chrovis/chore/release-v0.5.0 #40

Merge pull request #11 from chrovis/chore/release-v0.5.0

Merge pull request #11 from chrovis/chore/release-v0.5.0 #40

Workflow file for this run

name: build
on: [push, pull_request]
jobs:
test:
runs-on: ubuntu-latest
strategy:
matrix:
java: ['8', '11', '17']
clojure: ['1.8', '1.9', '1.10', '1.11']
name: Test with Java ${{ matrix.java }} and Clojure ${{ matrix.clojure }}
steps:
- uses: actions/checkout@v3
- uses: actions/cache@v3
with:
path: ~/.m2/repository
key: ${{ runner.os }}-lein-${{ hashFiles('**/project.clj') }}
restore-keys: |
${{ runner.os }}-lein-
- name: Setup Java
uses: actions/setup-java@v3
with:
distribution: 'adopt'
java-version: ${{ matrix.java }}
- name: Install dependencies
run: lein deps
- name: Run tests
run: lein with-profile +${{ matrix.clojure }} test
- name: Run cljs tests
run: lein with-profile +${{ matrix.clojure }} doo node test once
coverage:
needs: [test]
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v3
- uses: actions/cache@v3
with:
path: ~/.m2/repository
key: ${{ runner.os }}-lein-${{ hashFiles('**/project.clj') }}
restore-keys: |
${{ runner.os }}-lein-
- name: Setup Java
uses: actions/setup-java@v3
with:
distribution: 'adopt'
java-version: '17'
- name: Install dependencies
run: lein deps
- name: Generate code coverage
run: lein cloverage --codecov
- uses: codecov/codecov-action@v3
with:
files: ./target/coverage/codecov.json
get-version:
runs-on: ubuntu-latest
outputs:
version: ${{ steps.get-version.outputs.version }}
steps:
- uses: actions/checkout@v3
- name: Get version
id: get-version
run: |
echo "version=$(head -n 1 project.clj | sed -e 's/^(defproject.*\"\(.*\)\"$/\1/')" \
>> "$GITHUB_OUTPUT"
deploy:
if: ${{ github.event_name == 'push' &&
github.ref == 'refs/heads/master' &&
endsWith(needs.get-version.outputs.version, '-SNAPSHOT') }}
needs: [test, get-version]
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v3
- name: Setup Java
uses: actions/setup-java@v3
with:
distribution: 'adopt'
java-version: '17'
- name: Deploy
env:
CLOJARS_USERNAME: ${{ secrets.CLOJARS_USERNAME }}
CLOJARS_PASSWORD: ${{ secrets.CLOJARS_PASSWORD }}
run: lein deploy snapshots