Skip to content

Commit e08830b

Browse files
author
Stewart Miles
committed
Fixed download_artifacts.gradle reporting an error with existing artifacts.
If download_artifacts.gradle was executed and all required artifacts already exist in the target directory it would report all artifacts missing. This changes the script to always report all existing artifacts as copied (i.e not missing). Bug: 75298968 Change-Id: Iad793e66e71496366141b07e03dd0b9a07d32570
1 parent 8466e65 commit e08830b

25 files changed

+100
-68
lines changed

CHANGELOG.md

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,3 +1,8 @@
1+
# Version 1.2.64 - Mar 16, 2017
2+
## Bug Fixes
3+
* Fixed bug in download_artifacts.gradle (used by Android Resolver) which
4+
reported a failure if required artifacts already exist.
5+
16
# Version 1.2.63 - Feb 15, 2018
27
## Bug Fixes
38
* Fixed iOS Resolver include search paths taking precedence over system headers

build.gradle

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -132,7 +132,7 @@ project.ext {
132132
buildPath = file('build').absolutePath
133133
exportPath = file('build/plugin.unitypackage').absolutePath
134134
dllDir = 'Assets/PlayServicesResolver/Editor'
135-
pluginVersion = '1.2.63.0'
135+
pluginVersion = '1.2.64.0'
136136
currentPluginPath = file('.').absolutePath
137137
currentPluginBasename = 'play-services-resolver'
138138
currentPluginName = (currentPluginBasename + '-' + pluginVersion +

exploded/Assets/PlayServicesResolver/Editor.meta

Lines changed: 1 addition & 1 deletion
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

exploded/Assets/PlayServicesResolver/Editor/Google.IOSResolver_v1.2.63.0.dll.meta renamed to exploded/Assets/PlayServicesResolver/Editor/Google.IOSResolver_v1.2.64.0.dll.meta

Lines changed: 2 additions & 2 deletions
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

exploded/Assets/PlayServicesResolver/Editor/Google.JarResolver_v1.2.63.0.dll.meta renamed to exploded/Assets/PlayServicesResolver/Editor/Google.JarResolver_v1.2.64.0.dll.meta

Lines changed: 2 additions & 2 deletions
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.
Binary file not shown.

exploded/Assets/PlayServicesResolver/Editor/Google.VersionHandler.dll.meta

Lines changed: 2 additions & 2 deletions
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

exploded/Assets/PlayServicesResolver/Editor/Google.VersionHandlerImpl_v1.2.63.0.dll.meta renamed to exploded/Assets/PlayServicesResolver/Editor/Google.VersionHandlerImpl_v1.2.64.0.dll.meta

Lines changed: 2 additions & 2 deletions
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

exploded/Assets/PlayServicesResolver/Editor/play-services-resolver_v1.2.63.0.txt

Lines changed: 0 additions & 4 deletions
This file was deleted.
Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,4 @@
1+
Assets/PlayServicesResolver/Editor/Google.JarResolver_v1.2.64.0.dll
2+
Assets/PlayServicesResolver/Editor/Google.VersionHandler.dll
3+
Assets/PlayServicesResolver/Editor/Google.VersionHandlerImpl_v1.2.64.0.dll
4+
Assets/PlayServicesResolver/Editor/Google.IOSResolver_v1.2.64.0.dll

exploded/Assets/PlayServicesResolver/Editor/play-services-resolver_v1.2.63.0.txt.meta renamed to exploded/Assets/PlayServicesResolver/Editor/play-services-resolver_v1.2.64.0.txt.meta

Lines changed: 2 additions & 2 deletions
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

plugin/Assets/PlayServicesResolver.meta

Lines changed: 1 addition & 1 deletion
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

plugin/Assets/PlayServicesResolver/Editor.meta

Lines changed: 1 addition & 1 deletion
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

plugin/Assets/PlayServicesResolver/Editor/Google.IOSResolver.dll.meta

Lines changed: 1 addition & 1 deletion
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

plugin/Assets/PlayServicesResolver/Editor/Google.JarResolver.dll.meta

Lines changed: 1 addition & 1 deletion
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

plugin/Assets/PlayServicesResolver/Editor/Google.PackageManager.dll.meta

Lines changed: 1 addition & 1 deletion
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

plugin/Assets/PlayServicesResolver/Editor/Google.VersionHandler.dll.meta

Lines changed: 1 addition & 1 deletion
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

plugin/Assets/PlayServicesResolver/Editor/Google.VersionHandlerImpl.dll.meta

Lines changed: 1 addition & 1 deletion
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

plugin/Assets/PlayServicesResolver/Editor/play-services-resolver.txt.meta

Lines changed: 1 addition & 1 deletion
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

source/PlayServicesResolver/scripts/download_artifacts.gradle

Lines changed: 29 additions & 21 deletions
Original file line numberDiff line numberDiff line change
@@ -387,28 +387,36 @@ project.ext {
387387
getVersionlessArtifactByPackage(packageSpecifier),
388388
artifact.moduleVersion.id.version,
389389
packageType == "srcaar" ? "aar" : packageType)
390-
def copyTask = tasks.create(
391-
name: "copy_" + artifactTargetFilename,
392-
type: Copy,
393-
description: sprintf("Copy %s (%s) to %s", packageSpecifier,
394-
artifact.file, artifactTargetFilename))
395-
copyTask.with {
396-
from artifact.file
397-
into targetDir
398-
rename(
399-
// Rename the file to the target filename and log the copied file &
400-
// artifact so that they can be summarized when all copy artifact tasks
401-
// are complete.
402-
{
403-
String filename ->
404-
copiedFileArtifacts.add([new File(artifactTargetFilename),
405-
artifact])
406-
return artifactTargetFilename
407-
}
408-
)
409-
doFirst { logger.info(description) }
390+
artifactTargetFile = new File(targetDir,
391+
artifactTargetFilename)
392+
if (artifactTargetFile.exists()) {
393+
// If the target file already exists simply report it as copied.
394+
copiedFileArtifacts.add([artifactTargetFile, artifact])
395+
} else {
396+
// If the target file does not exist generate a task to copy it.
397+
def copyTask = tasks.create(
398+
name: "copy_" + artifactTargetFilename,
399+
type: Copy,
400+
description: sprintf("Copy %s (%s) to %s", packageSpecifier,
401+
artifact.file, artifactTargetFilename))
402+
copyTask.with {
403+
from artifact.file
404+
into targetDir
405+
rename(
406+
// Rename the file to the target filename and log the copied file &
407+
// artifact so that they can be summarized when all copy artifact
408+
// tasks are complete.
409+
{
410+
String filename ->
411+
copiedFileArtifacts.add([new File(artifactTargetFilename),
412+
artifact])
413+
return artifactTargetFilename
414+
}
415+
)
416+
doFirst { logger.info(description) }
417+
}
418+
copyTasks.add(copyTask)
410419
}
411-
copyTasks.add(copyTask)
412420
}
413421
}
414422

source/PlayServicesResolver/scripts/download_artifacts_test.gradle

Lines changed: 42 additions & 23 deletions
Original file line numberDiff line numberDiff line change
@@ -117,7 +117,7 @@ def createStartParameters(packagesToCopy, targetDir) {
117117
startParameters.projectProperties = [
118118
"ANDROID_HOME": project.ext.androidHome,
119119
"PACKAGES_TO_COPY": packagesToCopy,
120-
"TARGET_DIR": targetDir.name,
120+
"TARGET_DIR": targetDir.absolutePath,
121121
"MAVEN_REPOS": mavenRepo.toURI().toString()
122122
]
123123
startParameters.logLevel = logging.level
@@ -215,7 +215,7 @@ def downloadScriptOutputToSectionsList(output) {
215215
// * Validates the script output matches scriptOutput (list of strings where
216216
// each element is a section of the script's parsed output).
217217
def createTestTask(taskName, taskDescription, packageSpecification,
218-
outputInputFileMap, scriptOutput) {
218+
outputInputFileMap, scriptOutput, iterations=1) {
219219
// Create a target directory relative to the output directory.
220220
def targetDirFile = new File(project.ext.outputDir, taskName)
221221
// Move output file paths relative to the target directory and input paths
@@ -226,30 +226,34 @@ def createTestTask(taskName, taskDescription, packageSpecification,
226226
movedOutputInputFileMap[new File(targetDirFile, outputFile)] =
227227
inputFile != null ? new File(project.ext.mavenRepo, inputFile) : null
228228
}
229-
230-
def testTask = tasks.create(name: taskName,
231-
description: taskDescription,
232-
type: GradleBuild,
233-
dependsOn: createTestDirectoryTask(targetDirFile))
234-
testTask.with {
235-
outputs.files movedOutputInputFileMap.keySet()
236-
startParameter createStartParameters(packageSpecification,
237-
targetDirFile)
238-
buildFile project.ext.buildFile
239-
dir project.ext.outputDir
240-
doFirst { project.ext.standardOutputErrorLogger.install(it) }
241-
doLast {
242-
project.ext.standardOutputErrorLogger.uninstall(it)
243-
validateOutputFilesExist(it)
244-
validateFilesMatch(it, movedOutputInputFileMap)
245-
if (scriptOutput != null) {
246-
assert downloadScriptOutputToSectionsList(
247-
project.ext.standardOutputErrorLogger.output) == scriptOutput
229+
def createDirectoryTask = createTestDirectoryTask(targetDirFile)
230+
iterations.times {
231+
def currentIteration = it + 1
232+
def currentTaskName = taskName + (iterations > 1 ? "$currentIteration" : "")
233+
println currentTaskName
234+
def testTask = tasks.create(name: currentTaskName,
235+
description: taskDescription,
236+
type: GradleBuild,
237+
dependsOn: createDirectoryTask)
238+
testTask.with {
239+
outputs.files movedOutputInputFileMap.keySet()
240+
startParameter createStartParameters(packageSpecification,
241+
targetDirFile)
242+
buildFile project.ext.buildFile
243+
dir project.ext.outputDir
244+
doFirst { project.ext.standardOutputErrorLogger.install(it) }
245+
doLast {
246+
project.ext.standardOutputErrorLogger.uninstall(it)
247+
validateOutputFilesExist(it)
248+
validateFilesMatch(it, movedOutputInputFileMap)
249+
if (scriptOutput != null) {
250+
assert downloadScriptOutputToSectionsList(
251+
project.ext.standardOutputErrorLogger.output) == scriptOutput
252+
}
248253
}
249254
}
255+
project.ext.testTaskNames.add(currentTaskName)
250256
}
251-
project.ext.testTaskNames.add(taskName)
252-
return testTask
253257
}
254258

255259
createTestTask(
@@ -265,6 +269,21 @@ createTestTask(
265269
"android.arch.core.common-1.0.0.jar\n" +
266270
"com.android.support.support-annotations-26.1.0.jar"])
267271

272+
createTestTask(
273+
"testDownloadAvailableTwice",
274+
"Downloads a single artifact and it's dependencies from maven.",
275+
"android.arch.core:common:1.0.0",
276+
["android.arch.core.common-1.0.0.jar":
277+
"android/arch/core/common/1.0.0/common-1.0.0.jar",
278+
"com.android.support.support-annotations-26.1.0.jar":
279+
"com/android/support/support-annotations/26.1.0/" +
280+
"support-annotations-26.1.0.jar"],
281+
["Copied artifacts:\n" +
282+
"android.arch.core.common-1.0.0.jar\n" +
283+
"com.android.support.support-annotations-26.1.0.jar"],
284+
2 /* iterations */)
285+
286+
268287
createTestTask(
269288
"testDownloadAvailableWithSameName",
270289
"Downloads artifacts with the same artifact name and their dependencies " +

0 commit comments

Comments
 (0)