Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
52 changes: 16 additions & 36 deletions .github/workflows/ci.yml
Original file line number Diff line number Diff line change
Expand Up @@ -10,86 +10,66 @@ on:
jobs:
build:
runs-on: ubuntu-latest
strategy:
matrix:
java_version: [17, 21]
steps:
- uses: actions/checkout@v4
- name: Set up JDK 11
- name: Set up JDK ${{ matrix.java_version }}
uses: actions/setup-java@v4
with:
distribution: temurin
java-version: 11
java-version: ${{ matrix.java_version }}
- name: Setup Gradle
uses: gradle/actions/setup-gradle@v4
- name: Execute Gradle 'check' task
run: ./gradlew check
- name: Upload Gradle test reports
uses: actions/upload-artifact@v4
with:
name: gradle_test_reports
name: gradle_test_reports_with_java_${{ matrix.java_version }}
path: build/reports/tests/test

integration-test:
runs-on: ubuntu-latest
strategy:
matrix:
java_version: [17, 21]
steps:
- uses: actions/checkout@v4
- name: Set up JDK 11
- name: Set up JDK ${{ matrix.java_version }}
uses: actions/setup-java@v4
with:
distribution: temurin
java-version: 11
java-version: ${{ matrix.java_version }}
- name: Setup Gradle
uses: gradle/actions/setup-gradle@v4
- name: Execute Gradle 'integrationTest' task
run: ./gradlew integrationTest
- name: Upload Gradle test reports
uses: actions/upload-artifact@v4
with:
name: gradle_integration_test_reports
name: gradle_integration_test_reports_with_java_${{ matrix.java_version }}
path: build/reports/tests/integrationTest

test-on-example-app-with-spring-boot-2:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v4
- name: Set up JDK 11
uses: actions/setup-java@v4
with:
distribution: temurin
java-version: 11
- name: Setup Gradle
uses: gradle/actions/setup-gradle@v4
- name: Install spring-data-sqlite to Maven local
run: ./gradlew publishToMavenLocal
- name: Execute the example app using Spring Boot 2 to test spring-data-sqlite
working-directory: example
env:
WITH_SPRING_BOOT_2: true
run: ./gradlew run

test-on-example-app-with-spring-boot-3:
test-on-example-app:
runs-on: ubuntu-latest
strategy:
matrix:
java_version: [17, 21]
steps:
- uses: actions/checkout@v4
- name: Set up JDK 11 to install spring-data-sqlite for `publishToMavenLocal`
- name: Set up JDK ${{ matrix.java_version }}
uses: actions/setup-java@v4
with:
distribution: temurin
java-version: 11
java-version: ${{ matrix.java_version }}
- name: Setup Gradle
uses: gradle/actions/setup-gradle@v4
- name: Install spring-data-sqlite to Maven local
run: ./gradlew publishToMavenLocal
- name: Set up JDK ${{ matrix.java_version }} for testing
uses: actions/setup-java@v4
with:
distribution: temurin
java-version: ${{ matrix.java_version }}
- name: Setup Gradle
uses: gradle/actions/setup-gradle@v4
- name: Execute the example app using Spring Boot 3 to test spring-data-sqlite
- name: Execute the example app using Spring Boot to test spring-data-sqlite
working-directory: example
env:
WITH_SPRING_BOOT_2: false
run: ./gradlew run
40 changes: 22 additions & 18 deletions build.gradle
Original file line number Diff line number Diff line change
Expand Up @@ -5,17 +5,13 @@ plugins {
id "com.diffplug.spotless" version "6.25.0"
}

project.version = '1.3.0'
project.version = '1.4.0'
group = "org.komamitsu"

repositories {
mavenCentral()
}

tasks.withType(Test) {
useJUnitPlatform()
}

java {
withJavadocJar()
withSourcesJar()
Expand All @@ -38,21 +34,37 @@ configurations {
integrationTestCompileOnly.extendsFrom testCompileOnly
}


dependencies {
implementation "org.slf4j:slf4j-api:2.0.11"
implementation 'javax.annotation:javax.annotation-api:1.3.2'
api "org.springframework.data:spring-data-jdbc:2.4.5"
implementation 'org.xerial:sqlite-jdbc:3.45.1.0'
implementation "javax.annotation:javax.annotation-api:1.3.2"
implementation platform("org.springframework.boot:spring-boot-dependencies:3.3.5")
api "org.springframework.data:spring-data-jdbc"
implementation "org.xerial:sqlite-jdbc:3.45.1.0"
testImplementation "org.junit.jupiter:junit-jupiter-api:5.10.1"
testRuntimeOnly "org.junit.jupiter:junit-jupiter-engine:5.10.2"
testImplementation "org.assertj:assertj-core:3.25.3"
testImplementation "org.mockito:mockito-core:5.11.0"
testImplementation "org.mockito:mockito-junit-jupiter:5.9.0"
testImplementation "org.springframework.boot:spring-boot-starter-test:2.7.6"
testImplementation "org.springframework.boot:spring-boot-starter-test"
integrationTestImplementation "com.zaxxer:HikariCP:5.1.0"
}

tasks.withType(Test) {
useJUnitPlatform()
}

tasks.register('integrationTest', Test) {
description = 'Runs the integration tests'
group = 'verification'
testClassesDirs = sourceSets.integrationTest.output.classesDirs
classpath = sourceSets.integrationTest.runtimeClasspath
outputs.upToDateWhen { false } // ensures integration tests are run every time when called
}

compileIntegrationTestJava {
options.compilerArgs << "-parameters"
}

publishing {
publications {
mavenJava(MavenPublication) {
Expand Down Expand Up @@ -124,11 +136,3 @@ spotless {
formatAnnotations()
}
}

task integrationTest(type: Test) {
description = 'Runs the integration tests'
group = 'verification'
testClassesDirs = sourceSets.integrationTest.output.classesDirs
classpath = sourceSets.integrationTest.runtimeClasspath
outputs.upToDateWhen { false } // ensures integration tests are run every time when called
}
32 changes: 5 additions & 27 deletions example/build.gradle
Original file line number Diff line number Diff line change
Expand Up @@ -8,13 +8,6 @@ group 'org.komamitsu'
version '1.0-SNAPSHOT'

def springDataSqliteVersion = getSpringDataSqliteVersion()
def withSpringBoot2 = System.getenv('WITH_SPRING_BOOT_2')?.toBoolean() ?: false
if (withSpringBoot2) {
println("Testing with Spring Boot 2")
}
else {
println("Testing with Spring Boot 3")
}

repositories {
mavenCentral()
Expand All @@ -23,35 +16,20 @@ repositories {

dependencies {
implementation "org.komamitsu:spring-data-sqlite:${springDataSqliteVersion}"
if (withSpringBoot2) {
implementation platform('org.springframework.boot:spring-boot-dependencies:2.7.18')
} else {
implementation platform('org.springframework.boot:spring-boot-dependencies:3.3.5')
}
implementation platform('org.springframework.boot:spring-boot-dependencies:3.3.5')
implementation 'org.springframework.boot:spring-boot-starter'
implementation 'org.springframework.boot:spring-boot-starter-aop'
implementation 'org.springframework.retry:spring-retry:1.3.4'
implementation 'com.zaxxer:HikariCP:4.0.3'
implementation('org.slf4j:slf4j-api') {
if (withSpringBoot2) {
version {
// This version of spring-boot-starter-logging uses logback-classic:1.2.x.
// But Spring Data JDBC for SQLite uses slf4j-api:2.x and Spring logging doesn't work.
// So we specify a proper version here.
strictly '1.7.36'
}
}
}
implementation 'org.slf4j:slf4j-api'
testImplementation 'org.junit.jupiter:junit-jupiter-api:5.8.1'
testRuntimeOnly 'org.junit.jupiter:junit-jupiter-engine:5.8.1'
}

compileJava {
if (!withSpringBoot2) {
// This is needed only for Spring Boot 3.
// It will be not needed later https://stackoverflow.com/questions/78374721/spring-data-jdbc-repository-bean-creation-error/78376635#comment138178415_78376635.
options.compilerArgs << '-parameters'
}
// This is needed when using Spring Boot 3.
// See https://github.com/spring-projects/spring-framework/wiki/Spring-Framework-6.1-Release-Notes#parameter-name-retention for detail.
options.compilerArgs << '-parameters'
}

test {
Expand Down