Skip to content

Commit

Permalink
Disable caching of Dokka's integration tests (#2826)
Browse files Browse the repository at this point in the history
  • Loading branch information
IgnatBeresnev authored and atyrin committed Feb 10, 2023
1 parent ca77783 commit ee95d16
Showing 1 changed file with 22 additions and 1 deletion.
23 changes: 22 additions & 1 deletion integration-tests/build.gradle.kts
Original file line number Diff line number Diff line change
Expand Up @@ -21,7 +21,28 @@ 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,
* which does not work well with caching.
*
* 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(because = "Contains incorrect inputs/outputs configuration, see the KDoc for details")
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 ee95d16

Please sign in to comment.