|
14 | 14 |
|
15 | 15 | package com.google.firebase.gradle.plugins
|
16 | 16 |
|
| 17 | +import com.google.common.collect.Sets |
17 | 18 | import com.google.firebase.gradle.bomgenerator.BomGeneratorTask
|
18 | 19 | import com.google.firebase.gradle.plugins.PublishingPlugin.Companion.BUILD_BOM_ZIP_TASK
|
19 | 20 | import com.google.firebase.gradle.plugins.PublishingPlugin.Companion.BUILD_KOTLINDOC_ZIP_TASK
|
@@ -79,7 +80,7 @@ abstract class PublishingPlugin : Plugin<Project> {
|
79 | 80 | val checkHeadDependencies =
|
80 | 81 | registerCheckHeadDependenciesTask(project, releasingFirebaseLibraries)
|
81 | 82 | val validateProjectsToPublish =
|
82 |
| - registerValidateProjectsToPublishTask(project, releasingProjects) |
| 83 | + registerValidateProjectsToPublishTask(project, releasingFirebaseLibraries) |
83 | 84 | val publishReleasingLibrariesToBuildDir =
|
84 | 85 | registerPublishReleasingLibrariesToBuildDirTask(project, releasingProjects)
|
85 | 86 | val generateKotlindocsForRelease =
|
@@ -275,17 +276,26 @@ abstract class PublishingPlugin : Plugin<Project> {
|
275 | 276 | // TODO(b/280320915): Remove doLast when Gradle + IDEA fix task configuration avoidance bug
|
276 | 277 | private fun registerValidateProjectsToPublishTask(
|
277 | 278 | project: Project,
|
278 |
| - releasingProjects: List<Project> |
| 279 | + releasinglibraries: List<FirebaseLibraryExtension> |
279 | 280 | ) =
|
280 | 281 | project.tasks.register(VALIDATE_PROJECTS_TO_PUBLISH_TASK) {
|
281 | 282 | doLast {
|
282 |
| - if (releasingProjects.isEmpty()) { |
| 283 | + if (releasinglibraries.isEmpty()) { |
283 | 284 | throw GradleException(
|
284 | 285 | "No projects to release. " +
|
285 | 286 | "Ensure you've specified the projectsToPublish parameter, " +
|
286 | 287 | "or have a valid $RELEASE_CONFIG_FILE file at the root directory."
|
287 | 288 | )
|
288 | 289 | }
|
| 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 | + } |
289 | 299 | }
|
290 | 300 | }
|
291 | 301 |
|
|
0 commit comments