Skip to content

Commit

Permalink
Template for lein testing
Browse files Browse the repository at this point in the history
  • Loading branch information
JarrodCTaylor committed Feb 23, 2024
1 parent c3e9aa4 commit da9f595
Show file tree
Hide file tree
Showing 4 changed files with 130 additions and 29 deletions.
48 changes: 28 additions & 20 deletions .github/workflows/test-all-the-things.yml
Original file line number Diff line number Diff line change
Expand Up @@ -18,78 +18,86 @@ jobs:
with:
clojureRepo: ${{ inputs.clojureRepo }}
clojureRef: ${{ inputs.clojureRef }}
contribRepo: 'clojure/core.cache'
contribRef: 'master'
subjectRepo: 'clojure/core.cache'
subjectRef: 'master'

test-core-logic:
uses: ./.github/workflows/test-mvn-repo.yml
with:
clojureRepo: ${{ inputs.clojureRepo }}
clojureRef: ${{ inputs.clojureRef }}
contribRepo: 'clojure/core.logic'
contribRef: 'master'
subjectRepo: 'clojure/core.logic'
subjectRef: 'master'

test-core-match:
uses: ./.github/workflows/test-mvn-repo.yml
with:
clojureRepo: ${{ inputs.clojureRepo }}
clojureRef: ${{ inputs.clojureRef }}
contribRepo: 'clojure/core.match'
contribRef: 'master'
subjectRepo: 'clojure/core.match'
subjectRef: 'master'

test-core-memoize:
uses: ./.github/workflows/test-mvn-repo.yml
with:
clojureRepo: ${{ inputs.clojureRepo }}
clojureRef: ${{ inputs.clojureRef }}
contribRepo: 'clojure/core.memoize'
contribRef: 'master'
subjectRepo: 'clojure/core.memoize'
subjectRef: 'master'

test-math-combinatorics:
uses: ./.github/workflows/test-mvn-repo.yml
with:
clojureRepo: ${{ inputs.clojureRepo }}
clojureRef: ${{ inputs.clojureRef }}
contribRepo: 'clojure/math.combinatorics'
contribRef: 'master'
subjectRepo: 'clojure/math.combinatorics'
subjectRef: 'master'

test-java-jdbc:
uses: ./.github/workflows/test-mvn-repo.yml
with:
clojureRepo: ${{ inputs.clojureRepo }}
clojureRef: ${{ inputs.clojureRef }}
contribRepo: 'clojure/java.jdbc'
contribRef: 'master'
subjectRepo: 'clojure/java.jdbc'
subjectRef: 'master'

# Fails on newer jdk lacking nashorn for cljs
# test-data-xml:
# uses: ./.github/workflows/test-mvn-repo.yml
# with:
# clojureRepo: ${{ inputs.clojureRepo }}
# clojureRef: ${{ inputs.clojureRef }}
# contribRepo: 'clojure/data.xml'
# contribRef: 'master'
# subjectRepo: 'clojure/data.xml'
# subjectRef: 'master'

test-data-json:
uses: ./.github/workflows/test-mvn-repo.yml
with:
clojureRepo: ${{ inputs.clojureRepo }}
clojureRef: ${{ inputs.clojureRef }}
contribRepo: 'clojure/data.json'
contribRef: 'master'
subjectRepo: 'clojure/data.json'
subjectRef: 'master'

test-data-fressian:
uses: ./.github/workflows/test-mvn-repo.yml
with:
clojureRepo: ${{ inputs.clojureRepo }}
clojureRef: ${{ inputs.clojureRef }}
contribRepo: 'clojure/data.fressian'
contribRef: 'master'
subjectRepo: 'clojure/data.fressian'
subjectRef: 'master'

test-data-csv:
uses: ./.github/workflows/test-mvn-repo.yml
with:
clojureRepo: ${{ inputs.clojureRepo }}
clojureRef: ${{ inputs.clojureRef }}
contribRepo: 'clojure/data.csv'
contribRef: 'master'
subjectRepo: 'clojure/data.csv'
subjectRef: 'master'

test-fipp:
uses: ./.github/workflows/test-lein-repo.yml
with:
clojureRepo: ${{ inputs.clojureRepo }}
clojureRef: ${{ inputs.clojureRef }}
subjectRepo: 'brandonbloom/fipp'
subjectRef: 'master'
86 changes: 86 additions & 0 deletions .github/workflows/test-lein-repo.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,86 @@
name: Test Maven Repo

on:

workflow_call:
inputs:
clojureRepo:
description: "Repository name with owner."
type: string
required: true
clojureRef:
description: "The branch, tag or SHA to checkout"
type: string
required: true
subjectRepo:
description: "Subject Repository name with owner."
type: string
required: true
subjectRef:
description: "The branch, tag or SHA to checkout for subject repo"
type: string
required: true

jobs:
test:
strategy:
matrix:
java-version: ["8", "11", "17", "21"]

runs-on: ubuntu-latest

steps:
- name: Setup Java
uses: actions/setup-java@v4
with:
distribution: 'temurin'
java-version: ${{ matrix.java-version }}

- name: Checkout Clojure Source Code
uses: actions/checkout@v4
with:
repository: ${{ inputs.clojureRepo }}
ref: ${{ inputs.clojureRef }}
path: 'clojure-source'

- name: Build Clojure from Source
run: |
cd clojure-source
mvn install -Dmaven.test.skip=true
- name: Checkout Regression Test Source Code
uses: actions/checkout@v4
with:
repository: clojure/test.regression
ref: 'main'
path: 'test-source'

- name: Determine latest snapshot version
run: |
chmod +x ./test-source/scripts/find-installed-clojure-version.sh
./test-source/scripts/find-installed-clojure-version.sh
- name: Checkout Subject Source Code
uses: actions/checkout@v4
with:
repository: ${{ inputs.subjectRepo }}
ref: ${{ inputs.subjectRef }}
path: 'subject-source'

- name: Install Leiningen
run: |
wget https://raw.githubusercontent.com/technomancy/leiningen/stable/bin/lein
chmod +x lein
sudo mv lein /usr/local/bin/
- name: Install dependencies
run: lein deps

- name: Update project.clj with clojure build
run: |
cd /home/runner/work/test.regression/test.regression/subject-source
sed -i.bak "s/\(org.clojure\/clojure\ \"[0-9\.]*\"\)/org.clojure\/clojure \"${{ env.LATEST_CLJ_BUILD }}\"/g" project.clj
- name: Run Tests
run: |
lein test
18 changes: 9 additions & 9 deletions .github/workflows/test-mvn-repo.yml
Original file line number Diff line number Diff line change
Expand Up @@ -12,12 +12,12 @@ on:
description: "The branch, tag or SHA to checkout"
type: string
required: true
contribRepo:
description: "Contrib Repository name with owner."
subjectRepo:
description: "Subject Repository name with owner."
type: string
required: true
contribRef:
description: "The branch, tag or SHA to checkout for contrib repo"
subjectRef:
description: "The branch, tag or SHA to checkout for subject repo"
type: string
required: true

Expand Down Expand Up @@ -60,14 +60,14 @@ jobs:
chmod +x ./test-source/scripts/find-installed-clojure-version.sh
./test-source/scripts/find-installed-clojure-version.sh
- name: Checkout Contrib Source Code
- name: Checkout Subject Source Code
uses: actions/checkout@v4
with:
repository: ${{ inputs.contribRepo }}
ref: ${{ inputs.contribRef }}
path: 'contrib-source'
repository: ${{ inputs.subjectRepo }}
ref: ${{ inputs.subjectRef }}
path: 'subject-source'

- name: Run Tests
run: |
cd /home/runner/work/test.regression/test.regression/contrib-source
cd /home/runner/work/test.regression/test.regression/subject-source
mvn -ntp -B -Dclojure.version=${{ env.LATEST_CLJ_BUILD }} clean test
7 changes: 7 additions & 0 deletions scripts/set-lein-clj-version.sh
Original file line number Diff line number Diff line change
@@ -0,0 +1,7 @@
#!/bin/bash

# define the new version you want to use
new_version=1.12.0-master-SNAPSHOT

# use sed to replace the version inline
sed -i.bak "s/\(org.clojure\/clojure\ \"[0-9\.]*\"\)/org.clojure\/clojure \"$new_version\"/g" project.clj

0 comments on commit da9f595

Please sign in to comment.