diff --git a/.gitlab-ci.yml b/.gitlab-ci.yml index 4f7f7901..63248ff6 100644 --- a/.gitlab-ci.yml +++ b/.gitlab-ci.yml @@ -21,3 +21,14 @@ deploy: - if: $CI_COMMIT_BRANCH == $CI_DEFAULT_BRANCH - if: $CI_COMMIT_BRANCH =~ /^release/ - if: $CI_COMMIT_TAG + +generateJavaDoc: + stage: build + tags: + - dind + script: + - echo "Generating Javadoc..." + - gradle generateJavaDoc + artifacts: + paths: + - docs/javadoc/ \ No newline at end of file diff --git a/redaction-service-v1/redaction-service-server-v1/build.gradle.kts b/redaction-service-v1/redaction-service-server-v1/build.gradle.kts index 59bdcaf3..87aa9f63 100644 --- a/redaction-service-v1/redaction-service-server-v1/build.gradle.kts +++ b/redaction-service-v1/redaction-service-server-v1/build.gradle.kts @@ -113,3 +113,32 @@ tasks.named("bootBuildImage") { tags.set(listOf(dockerTag)) } } + +fun parseDroolsImports(droolsFilePath: String): List { + val imports = mutableListOf() + val importPattern = Regex("^import\\s+(com\\.iqser\\.red\\.service\\.redaction\\.v1\\.[\\w.]+);") + val desiredPrefix = "com.iqser.red.service.redaction.v1" + + File(droolsFilePath).forEachLine { line -> + importPattern.find(line)?.let { matchResult -> + val importPath = matchResult.groupValues[1].trim() + if (importPath.startsWith(desiredPrefix)) { + val formattedPath = importPath.replace('.', '/') + imports.add("$formattedPath.java") + } + } + } + + return imports +} + +val droolsImports = parseDroolsImports("redaction-service-v1/redaction-service-server-v1/src/main/resources/drools/all_rules_documine.drl") + +tasks.register("generateJavaDoc", Javadoc::class) { + dependsOn("compileJava") + classpath = project.sourceSets["main"].runtimeClasspath + source = fileTree("${buildDir}/generated/sources/delombok/java/main") { + include(droolsImports) + } + destinationDir = file("docs/javadoc") +}