diff --git a/.github/workflows/pull-request-merge-check.yml b/.github/workflows/pull-request-merge-check.yml index 561c4acd..cbbb341d 100644 --- a/.github/workflows/pull-request-merge-check.yml +++ b/.github/workflows/pull-request-merge-check.yml @@ -43,7 +43,7 @@ jobs: gradle-home-cache-cleanup: true - name: Build - run: ./gradlew :hideout-core:testClasses + run: ./gradlew :hideout-core:classes unit-test: name: Unit Test @@ -59,37 +59,13 @@ jobs: java-version: '21' distribution: 'temurin' + - name: Setup Gradle + uses: gradle/actions/setup-gradle@v3 + with: + gradle-home-cache-cleanup: true + - name: Unit Test - uses: gradle/gradle-build-action@v3.5.0 - with: - arguments: :hideout-core:test - - - name: Save Test Report - if: always() - uses: actions/cache/save@v4 - with: - path: build/test-results - key: unit-test-report-${{ github.sha }} - - coverage: - name: Coverage - needs: [ setup ] - runs-on: ubuntu-latest - steps: - - name: Checkout - uses: actions/checkout@v4 - - - name: Set up JDK 21 - uses: actions/setup-java@v4 - with: - java-version: '21' - distribution: 'temurin' - - - name: Run Kover - - uses: gradle/gradle-build-action@v3.5.0 - with: - arguments: :hideout-core:koverXmlReport --rerun-tasks + run: :hideout-core:koverXmlReport - name: Add coverage report to PR if: always() @@ -105,18 +81,6 @@ jobs: min-coverage-changed-files: 80 coverage-counter-type: LINE - report-tests: - name: Report Tests - if: success() || failure() - needs: [ unit-test ] - runs-on: ubuntu-latest - steps: - - name: Restore Test Report - uses: actions/cache/restore@v4 - with: - path: build/test-results - key: unit-test-report-${{ github.sha }} - - name: JUnit Test Report uses: mikepenz/action-junit-report@v4 with: @@ -136,10 +100,13 @@ jobs: java-version: '21' distribution: 'temurin' - - name: Build with Gradle - uses: gradle/gradle-build-action@ac2d340dc04d9e1113182899e983b5400c17cda1 + - name: Setup Gradle + uses: gradle/actions/setup-gradle@v3 with: - arguments: :hideout-core:detektMain + gradle-home-cache-cleanup: true + + - name: Build with Gradle + run: :hideout-core:detektMain - name: Auto Commit if: ${{ always() }} diff --git a/hideout-mastodon/build.gradle.kts b/hideout-mastodon/build.gradle.kts index 54fea879..9ebe7fe9 100644 --- a/hideout-mastodon/build.gradle.kts +++ b/hideout-mastodon/build.gradle.kts @@ -36,32 +36,40 @@ dependencies { implementation(libs.bundles.coroutines) } -tasks.test { - useJUnitPlatform() +tasks { + test { + useJUnitPlatform() + } + + compileKotlin { + dependsOn("openApiGenerateMastodonCompatibleApi") + mustRunAfter("openApiGenerateMastodonCompatibleApi") + } + + create("openApiGenerateMastodonCompatibleApi") { + generatorName.set("kotlin-spring") + inputSpec.set("$rootDir/src/main/resources/openapi/mastodon.yaml") + outputDir.set("$buildDir/generated/sources/mastodon") + apiPackage.set("dev.usbharu.hideout.mastodon.interfaces.api.generated") + modelPackage.set("dev.usbharu.hideout.mastodon.interfaces.api.generated.model") + configOptions.put("interfaceOnly", "true") + configOptions.put("useSpringBoot3", "true") + configOptions.put("reactive", "true") + configOptions.put("gradleBuildFile", "false") + configOptions.put("useSwaggerUI", "false") + configOptions.put("enumPropertyNaming", "UPPERCASE") + additionalProperties.put("useTags", "true") + + importMappings.put("org.springframework.core.io.Resource", "org.springframework.web.multipart.MultipartFile") + typeMappings.put("org.springframework.core.io.Resource", "org.springframework.web.multipart.MultipartFile") + templateDir.set("$rootDir/templates") + } } + kotlin { jvmToolchain(21) } -tasks.create("openApiGenerateMastodonCompatibleApi", GenerateTask::class) { - generatorName.set("kotlin-spring") - inputSpec.set("$rootDir/src/main/resources/openapi/mastodon.yaml") - outputDir.set("$buildDir/generated/sources/mastodon") - apiPackage.set("dev.usbharu.hideout.mastodon.interfaces.api.generated") - modelPackage.set("dev.usbharu.hideout.mastodon.interfaces.api.generated.model") - configOptions.put("interfaceOnly", "true") - configOptions.put("useSpringBoot3", "true") - configOptions.put("reactive", "true") - configOptions.put("gradleBuildFile", "false") - configOptions.put("useSwaggerUI", "false") - configOptions.put("enumPropertyNaming", "UPPERCASE") - additionalProperties.put("useTags", "true") - - importMappings.put("org.springframework.core.io.Resource", "org.springframework.web.multipart.MultipartFile") - typeMappings.put("org.springframework.core.io.Resource", "org.springframework.web.multipart.MultipartFile") - templateDir.set("$rootDir/templates") -} - sourceSets.main { kotlin.srcDirs( "$buildDir/generated/sources/mastodon/src/main/kotlin"