Skip to content

Commit ee45372

Browse files
committed
Fix post-processing
1 parent 6f3d4fb commit ee45372

1 file changed

Lines changed: 13 additions & 13 deletions

File tree

include-build/gradle-plugin/src/main/java/com/telefonica/androidsnaptesting/AndroidSnaptestingPlugin.kt

Lines changed: 13 additions & 13 deletions
Original file line numberDiff line numberDiff line change
@@ -50,33 +50,33 @@ class AndroidSnaptestingPlugin : Plugin<Project> {
5050
"$projectDir/src/$variantSourceFolder/assets/android-snaptesting-golden-files"
5151
}
5252

53-
// Attach work directly on the deviceProviderTask (config-cache safe).
5453
// Note: in Kotlin, doFirst/doLast lambdas receive the task as 'it', not 'this'.
5554
deviceProviderTask.doFirst {
5655
(it as DeviceProviderInstrumentTestTask)
5756
.deviceFileManager(applicationIdProvider.get(), adbExecutablePath, providerFactory)
5857
.clearAllSnapshots()
5958
}
6059

61-
deviceProviderTask.doLast {
62-
(it as DeviceProviderInstrumentTestTask)
63-
.afterExecution(
60+
// Before task as dependency anchor for CI scripts.
61+
val beforeTaskName = "androidSnaptestingBefore$capitalizedVariant"
62+
project.tasks.register(beforeTaskName, Task::class.java)
63+
deviceProviderTask.dependsOn(beforeTaskName)
64+
65+
// After task runs post-processing via finalizedBy, which guarantees
66+
// execution even when the test task fails (needed to pull snapshot
67+
// results and generate reports on failure).
68+
val afterTaskName = "androidSnaptestingAfter$capitalizedVariant"
69+
project.tasks.register(afterTaskName, Task::class.java) { task ->
70+
task.doLast {
71+
deviceProviderTask.afterExecution(
6472
applicationId = applicationIdProvider.get(),
6573
adbExecutablePath = adbExecutablePath,
6674
providerFactory = providerFactory,
6775
isRecordMode = isRecordMode,
6876
goldenSnapshotsSourcePath = goldenSnapshotsSourcePath,
6977
)
78+
}
7079
}
71-
72-
// Keep empty before/after tasks as dependency anchors for CI scripts
73-
// (e.g. ci.gradle.kts references these task names).
74-
val beforeTaskName = "androidSnaptestingBefore$capitalizedVariant"
75-
project.tasks.register(beforeTaskName, Task::class.java)
76-
deviceProviderTask.dependsOn(beforeTaskName)
77-
78-
val afterTaskName = "androidSnaptestingAfter$capitalizedVariant"
79-
project.tasks.register(afterTaskName, Task::class.java)
8080
deviceProviderTask.finalizedBy(afterTaskName)
8181
}
8282
}

0 commit comments

Comments
 (0)