Skip to content

Commit 16b824f

Browse files
author
David Motsonashvili
committed
add new check in validateProjectsToPublishTask
1 parent b261373 commit 16b824f

File tree

1 file changed

+17
-7
lines changed

1 file changed

+17
-7
lines changed

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

Lines changed: 17 additions & 7 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
@@ -45,18 +46,18 @@ import org.gradle.kotlin.dsl.register
4546
* - [VALIDATE_POM_TASK][registerValidatePomForReleaseTask]
4647
* - [VALIDATE_PROJECTS_TO_PUBLISH_TASK][registerValidateProjectsToPublishTask]
4748
* - [BUILD_MAVEN_ZIP_TASK] -> Creates a zip file of the contents of
48-
* [PUBLISH_RELEASING_LIBS_TO_BUILD_TASK] [registerPublishReleasingLibrariesToBuildDirTask]
49+
* [PUBLISH_RELEASING_LIBS_TO_BUILD_TASK] [registerPublishReleasingLibrariesToBuildDirTask]
4950
* - [BUILD_KOTLINDOC_ZIP_TASK] -> Creates a zip file of the contents of
50-
* [GENERATE_KOTLINDOC_FOR_RELEASE_TASK] [registerGenerateKotlindocForReleaseTask]
51+
* [GENERATE_KOTLINDOC_FOR_RELEASE_TASK] [registerGenerateKotlindocForReleaseTask]
5152
* - [BUILD_RELEASE_NOTES_ZIP_TASK] -> Creates a zip file of the contents of
52-
* [PREPARE_RELEASE_NOTES_FOR_DROP][registerPrepareReleaseNotesForDropTask]
53+
* [PREPARE_RELEASE_NOTES_FOR_DROP][registerPrepareReleaseNotesForDropTask]
5354
* - [FIREBASE_PUBLISH_TASK] -> Runs all the tasks above
5455
*
5556
* The following are additional tasks provided- that are either for convenience sake, or are used
5657
* outside of the standard [FIREBASE_PUBLISH_TASK] workflow (possibly at a later time in the release
5758
* cycle):
5859
* - [BUILD_BOM_ZIP_TASK] -> Creates a zip file of the contents of [GENERATE_BOM_TASK]
59-
* [registerGenerateBomTask]
60+
* [registerGenerateBomTask]
6061
* - [RELEASE_GENEATOR_TASK][registerGenerateReleaseConfigFilesTask]
6162
* - [PUBLISH_RELEASING_LIBS_TO_LOCAL_TASK][registerPublishReleasingLibrariesToMavenLocalTask]
6263
* - [SEMVER_CHECK_TASK][registerSemverCheckForReleaseTask]
@@ -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)