Skip to content

Commit

Permalink
Disable caching of Dokka's integration tests
Browse files Browse the repository at this point in the history
Because integration tests are cached by default, it produces no output for showcasing documentation through S3 or GitHub artifacts.

Regression from #2711
  • Loading branch information
IgnatBeresnev committed Jan 26, 2023
1 parent adfeed1 commit d61e20e
Showing 1 changed file with 20 additions and 1 deletion.
21 changes: 20 additions & 1 deletion integration-tests/build.gradle.kts
Expand Up @@ -21,7 +21,26 @@ subprojects {
implementation(project(":integration-tests"))
}

val integrationTest by tasks.register<Test>("integrationTest") {
/**
* Dokka's integration test task is not cacheable because the HTML outputs
* it produces when running the tests are used for showcasing resulting documentation.
*
* At the moment there are two problems that do not allow to make it cacheable:
* 1. The task's inputs are such that changes in Dokka's code do not invalidate the cache,
* because it is run with the same version of Dokka ("DOKKA_VERSION") on the same
* test project inputs.
* 2. The tests generate HTML output which is then used to showcase documentation.
* The outputs are usually copied to a location from which it will be served.
* However, if the test is cacheable, it produces no outputs, so no documentation
* to showcase. It needs to be broken into two separate tasks: one cacheable for running
* the tests and producing HTML output, and another non-cacheable for copying the output.
*
* @see [org.jetbrains.dokka.it.TestOutputCopier] for more details on showcasing documentation
*/
@DisableCachingByDefault
abstract class NonCacheableIntegrationTest : Test()

val integrationTest by tasks.register<NonCacheableIntegrationTest>("integrationTest") {
maxHeapSize = "2G"
description = "Runs integration tests."
group = "verification"
Expand Down

0 comments on commit d61e20e

Please sign in to comment.