From 8ec56cd90b59f537d268d1e65de86519584c2dec Mon Sep 17 00:00:00 2001 From: Ludy87 Date: Sat, 12 Jul 2025 19:29:19 +0200 Subject: [PATCH] generateOpenApiDocs --- .github/workflows/build.yml | 2 +- build.gradle | 38 +++++++++++++++++++++++++++++++++++++ 2 files changed, 39 insertions(+), 1 deletion(-) diff --git a/.github/workflows/build.yml b/.github/workflows/build.yml index 5f04fc757..75cba0597 100644 --- a/.github/workflows/build.yml +++ b/.github/workflows/build.yml @@ -106,7 +106,7 @@ jobs: - uses: gradle/actions/setup-gradle@ac638b010cf58a27ee6c972d7336334ccaf61c96 # v4.4.1 - name: Generate OpenAPI documentation - run: ./gradlew generateOpenApiDocs + run: ./gradlew :stirling-pdf:generateOpenApiDocs - name: Upload OpenAPI Documentation uses: actions/upload-artifact@ea165f8d65b6e75b540449e92b4886f43607fa02 # v4.6.2 diff --git a/build.gradle b/build.gradle index 8eedacfbd..9dd148d64 100644 --- a/build.gradle +++ b/build.gradle @@ -161,6 +161,44 @@ subprojects { tasks.named("processResources") { dependsOn(rootProject.tasks.writeVersion) } + + if (name == 'stirling-pdf') { + apply plugin: 'org.springdoc.openapi-gradle-plugin' + + openApi { + apiDocsUrl = "http://localhost:8080/v1/api-docs" + outputDir = file("$projectDir") + outputFileName = "SwaggerDoc.json" + waitTimeInSeconds = 60 // Increase the wait time to 60 seconds + } + + tasks.named("forkedSpringBootRun") { + dependsOn(":common:jar") + dependsOn(":proprietary:jar") + } + + tasks.register("copySwaggerDoc", Copy) { + doNotTrackState("Writes SwaggerDoc.json to project root") + from(layout.projectDirectory.file("SwaggerDoc.json")) + into(rootProject.projectDir) + dependsOn("generateOpenApiDocs") + } + + tasks.register("cleanSwaggerInBuild", Delete) { + doNotTrackState("Cleans up SwaggerDoc.json in build directory") + delete(layout.projectDirectory.file("SwaggerDoc.json")) + dependsOn("copySwaggerDoc") + } + + tasks.named("copySwaggerDoc") { + finalizedBy("cleanSwaggerInBuild") + } + + tasks.named("generateOpenApiDocs") { + finalizedBy("copySwaggerDoc") + doNotTrackState("OpenAPI plugin writes outside build directory") + } + } } tasks.withType(JavaCompile).configureEach {