Skip to content

Commit ffaa513

Browse files
committed
Update CI and Add Release Github Action workflows
1 parent 3c9d679 commit ffaa513

File tree

4 files changed

+115
-4
lines changed

4 files changed

+115
-4
lines changed

.github/workflows/ci.yml

Lines changed: 15 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -11,10 +11,23 @@ jobs:
1111
name: Java ${{ matrix.java }} build
1212
steps:
1313
- uses: actions/checkout@v4
14+
- uses: gradle/actions/wrapper-validation@v4
1415
- name: Set up Java
1516
uses: actions/setup-java@v4
1617
with:
1718
distribution: liberica
1819
java-version: ${{ matrix.java }}
19-
- name: Build with Gradle
20-
run: ./gradlew build
20+
- name: Setup Gradle
21+
uses: gradle/actions/setup-gradle@v4
22+
- name: Build with Gradle, target Chroma vector store and leverage OpenAI API for model interaction
23+
run: ./gradlew clean build -Pvector-db-provider=chroma
24+
- name: Build with Gradle, target Chroma vector store and leverage Ollama for model interaction
25+
run: ./gradlew clean build -Pvector-db-provider=chroma -Pmodel-api-provider=ollama
26+
- name: Build with Gradle, target PgVector vector store and leverage OpenAI API for model interaction
27+
run: ./gradlew clean build -Pvector-db-provider=pgvector
28+
- name: Build with Gradle, target PgVector vector store and leverage Ollama for model interaction
29+
run: ./gradlew clean build -Pvector-db-provider=pgvector -Pmodel-api-provider=ollama
30+
- name: Build with Gradle, target Redis Stack vector store and leverage OpenAI API for model interaction
31+
run: ./gradlew clean build -Pvector-db-provider=redis
32+
- name: Build with Gradle, target Redis Stack vector store and leverage Ollama for model interaction
33+
run: ./gradlew clean build -Pvector-db-provider=redis -Pmodel-api-provider=ollama

.github/workflows/release.yml

Lines changed: 77 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,77 @@
1+
name: Publish package to GitHub Packages
2+
on:
3+
release:
4+
types: [created]
5+
6+
jobs:
7+
build:
8+
runs-on: ubuntu-latest
9+
strategy:
10+
matrix:
11+
include:
12+
- vector-db: chroma
13+
model-api: openai
14+
jar-base-name: sanford-openai-chroma
15+
- vector-db: chroma
16+
model-api: ollama
17+
jar-base-name: sanford-ollama-chroma
18+
- vector-db: pgvector
19+
model-api: openai
20+
jar-base-name: sanford-openai-pgvector
21+
- vector-db: pgvector
22+
model-api: ollama
23+
jar-base-name: sanford-ollama-pgvector
24+
- vector-db: redis
25+
model-api: openai
26+
jar-base-name: sanford-openai-redis
27+
- vector-db: redis
28+
model-api: ollama
29+
jar-base-name: sanford-ollama-redis
30+
steps:
31+
- uses: actions/checkout@v4
32+
- uses: gradle/actions/wrapper-validation@v4
33+
- name: Set up Java
34+
uses: actions/setup-java@v4
35+
with:
36+
distribution: liberica
37+
java-version: 21
38+
- name: Setup Gradle
39+
uses: gradle/actions/setup-gradle@v4
40+
- name: Build artifact
41+
run: |
42+
./gradlew clean setVersion -PnewVersion=${{ github.event.release.tag_name }}
43+
cat gradle.properties
44+
./gradlew build -Pvector-db-provider=${{ matrix.vector-db }} -Pmodel-api-provider=${{ matrix.model-api }} -PjarBaseName=${{ matrix.jar-base-name }}
45+
echo "Contents of build/libs:"
46+
ls -l build/libs
47+
- name: Upload artifact
48+
uses: actions/upload-artifact@v4
49+
with:
50+
name: ${{ matrix.jar-base-name }}
51+
path: build/libs/${{ matrix.jar-base-name }}-${{ github.event.release.tag_name }}.jar
52+
if-no-files-found: error
53+
retention-days: 1
54+
55+
publish:
56+
needs: build
57+
runs-on: ubuntu-latest
58+
permissions:
59+
contents: write
60+
checks: write
61+
actions: read
62+
issues: read
63+
packages: write
64+
pull-requests: read
65+
repository-projects: read
66+
statuses: read
67+
steps:
68+
- name: Download all artifacts
69+
uses: actions/download-artifact@v4
70+
- name: Publish assets and generate release notes
71+
uses: softprops/action-gh-release@v2
72+
with:
73+
files: |
74+
*/*.jar
75+
fail_on_unmatched_files: true
76+
generate_release_notes: true
77+
token: ${{ secrets.GITHUB_TOKEN }}

build.gradle

Lines changed: 22 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -7,7 +7,7 @@ plugins {
77
}
88

99
group = 'org.cftoolsuite'
10-
version = '0.0.1-SNAPSHOT'
10+
1111

1212
java {
1313
toolchain {
@@ -72,9 +72,29 @@ tasks.named('test') {
7272
}
7373

7474
bootJar {
75+
archiveBaseName = project.findProperty('jarBaseName') ?: project.name
7576
duplicatesStrategy = DuplicatesStrategy.EXCLUDE
7677
}
7778

7879
bootRun {
7980
systemProperties System.properties
80-
}
81+
}
82+
83+
jar {
84+
archiveBaseName = project.findProperty('jarBaseName') ?: project.name
85+
}
86+
87+
task setVersion {
88+
doLast {
89+
def newVersion = project.hasProperty('newVersion') ? project.newVersion : version
90+
ant.propertyfile(file: "gradle.properties") {
91+
entry(key: "version", value: newVersion)
92+
}
93+
}
94+
}
95+
96+
task printArtifactPath {
97+
doLast {
98+
println bootJar.archiveFile.get().asFile.absolutePath
99+
}
100+
}

gradle.properties

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1 @@
1+
version=0.0.1-SNAPSHOT

0 commit comments

Comments
 (0)