Skip to content

Commit 771003d

Browse files
davidmotsonDavid Motsonashvili
and
David Motsonashvili
authored
add new check in validateProjectsToPublishTask (#5204)
* add new check in validateProjectsToPublishTask * ktfmt --------- Co-authored-by: David Motsonashvili <[email protected]>
1 parent 3d3eeaf commit 771003d

File tree

1 file changed

+13
-3
lines changed

1 file changed

+13
-3
lines changed

buildSrc/src/main/java/com/google/firebase/gradle/plugins/PublishingPlugin.kt

Lines changed: 13 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -14,6 +14,7 @@
1414

1515
package com.google.firebase.gradle.plugins
1616

17+
import com.google.common.collect.Sets
1718
import com.google.firebase.gradle.bomgenerator.BomGeneratorTask
1819
import com.google.firebase.gradle.plugins.PublishingPlugin.Companion.BUILD_BOM_ZIP_TASK
1920
import com.google.firebase.gradle.plugins.PublishingPlugin.Companion.BUILD_KOTLINDOC_ZIP_TASK
@@ -79,7 +80,7 @@ abstract class PublishingPlugin : Plugin<Project> {
7980
val checkHeadDependencies =
8081
registerCheckHeadDependenciesTask(project, releasingFirebaseLibraries)
8182
val validateProjectsToPublish =
82-
registerValidateProjectsToPublishTask(project, releasingProjects)
83+
registerValidateProjectsToPublishTask(project, releasingFirebaseLibraries)
8384
val publishReleasingLibrariesToBuildDir =
8485
registerPublishReleasingLibrariesToBuildDirTask(project, releasingProjects)
8586
val generateKotlindocsForRelease =
@@ -275,17 +276,26 @@ abstract class PublishingPlugin : Plugin<Project> {
275276
// TODO(b/280320915): Remove doLast when Gradle + IDEA fix task configuration avoidance bug
276277
private fun registerValidateProjectsToPublishTask(
277278
project: Project,
278-
releasingProjects: List<Project>
279+
releasinglibraries: List<FirebaseLibraryExtension>
279280
) =
280281
project.tasks.register(VALIDATE_PROJECTS_TO_PUBLISH_TASK) {
281282
doLast {
282-
if (releasingProjects.isEmpty()) {
283+
if (releasinglibraries.isEmpty()) {
283284
throw GradleException(
284285
"No projects to release. " +
285286
"Ensure you've specified the projectsToPublish parameter, " +
286287
"or have a valid $RELEASE_CONFIG_FILE file at the root directory."
287288
)
288289
}
290+
val libraryGroupProjects =
291+
releasinglibraries.flatMap { it.projectsToRelease }.filterNotNull().toSet()
292+
val releasingProjects = releasinglibraries.mapNotNull { it.project }.toSet()
293+
if (!libraryGroupProjects.equals(releasingProjects)) {
294+
throw GradleException(
295+
"Some libraries in library groups are not in the release: " +
296+
Sets.difference(libraryGroupProjects, releasingProjects).map { it.displayName }
297+
)
298+
}
289299
}
290300
}
291301

0 commit comments

Comments
 (0)