Skip to content

Commit 3fe02df

Browse files
AlexeiVainshteineyalbe4
authored andcommitted
issue 241 - Check if the task did some work before performing final operations (#246)
* issue 241 - Check if the task did some work before performing final operations * issue 244 - Projects need to be evaluated in the projectsEvaluated
1 parent 1e801c7 commit 3fe02df

File tree

19 files changed

+275
-138
lines changed

19 files changed

+275
-138
lines changed

Diff for: build.gradle

+1-1
Original file line numberDiff line numberDiff line change
@@ -8,7 +8,7 @@ buildscript {
88
}
99
dependencies {
1010
classpath "org.jfrog.buildinfo:build-info-extractor-gradle:3.1.1"
11-
classpath "com.jfrog.bintray.gradle:gradle-bintray-plugin:1.8.2"
11+
classpath "com.jfrog.bintray.gradle:gradle-bintray-plugin:1.8.3"
1212
}
1313
}
1414

Diff for: gradle.properties

+1-1
Original file line numberDiff line numberDiff line change
@@ -1 +1 @@
1-
currentVersion=1.8.2
1+
currentVersion=1.8.3

Diff for: src/main/groovy/com/jfrog/bintray/gradle/ProjectsEvaluatedBuildListener.groovy

+40-42
Original file line numberDiff line numberDiff line change
@@ -33,49 +33,7 @@ class ProjectsEvaluatedBuildListener extends BuildAdapter implements ProjectEval
3333

3434
@Override
3535
void afterEvaluate(Project proj, ProjectState state) {
36-
37-
bintrayUpload.with {
38-
apiUrl = extension.apiUrl
39-
user = extension.user
40-
apiKey = extension.key
41-
configurations = extension.configurations
42-
publications = extension.publications
43-
filesSpec = extension.filesSpec
44-
publish = extension.publish
45-
override = extension.override
46-
dryRun = extension.dryRun
47-
userOrg = extension.pkg.userOrg ?: extension.user
48-
repoName = extension.pkg.repo
49-
packageName = extension.pkg.name
50-
packageDesc = extension.pkg.desc
51-
packageWebsiteUrl = extension.pkg.websiteUrl
52-
packageIssueTrackerUrl = extension.pkg.issueTrackerUrl
53-
packageVcsUrl = extension.pkg.vcsUrl
54-
packageGithubRepo = extension.pkg.githubRepo
55-
packageGithubReleaseNotesFile = extension.pkg.githubReleaseNotesFile
56-
packageLicenses = extension.pkg.licenses
57-
packageLabels = extension.pkg.labels
58-
packageAttributes = extension.pkg.attributes
59-
packagePublicDownloadNumbers = extension.pkg.publicDownloadNumbers
60-
debianDistribution = extension.pkg.debian.distribution
61-
debianComponent = extension.pkg.debian.component
62-
debianArchitecture = extension.pkg.debian.architecture
63-
versionName = extension.pkg.version.name ?: project.version
64-
versionDesc = extension.pkg.version.desc
65-
versionReleased = extension.pkg.version.released
66-
versionVcsTag = extension.pkg.version.vcsTag ?: project.version
67-
versionAttributes = extension.pkg.version.attributes
68-
signVersion = extension.pkg.version.gpg.sign
69-
gpgPassphrase = extension.pkg.version.gpg.passphrase
70-
syncToMavenCentral = extension.pkg.version.mavenCentralSync.sync == null ?
71-
true : extension.pkg.version.mavenCentralSync.sync
72-
ossUser = extension.pkg.version.mavenCentralSync.user
73-
ossPassword = extension.pkg.version.mavenCentralSync.password
74-
ossCloseRepo = extension.pkg.version.mavenCentralSync.close
75-
}
76-
7736
bintrayUploadTasks.add(bintrayUpload)
78-
7937
Task bintrayPublish = bintrayUpload.project.getRootProject().getTasks().findByName(BintrayPublishTask.TASK_NAME)
8038
if (bintrayPublish == null) {
8139
throw new IllegalStateException(String.format("Could not find %s in the root project", BintrayPublishTask.TASK_NAME))
@@ -96,6 +54,46 @@ class ProjectsEvaluatedBuildListener extends BuildAdapter implements ProjectEval
9654
@Override
9755
void projectsEvaluated(Gradle gradle) {
9856
for (BintrayUploadTask bintrayUpload : bintrayUploadTasks) {
57+
bintrayUpload.with {
58+
apiUrl = extension.apiUrl
59+
user = extension.user
60+
apiKey = extension.key
61+
configurations = extension.configurations
62+
publications = extension.publications
63+
filesSpec = extension.filesSpec
64+
publish = extension.publish
65+
override = extension.override
66+
dryRun = extension.dryRun
67+
userOrg = extension.pkg.userOrg ?: extension.user
68+
repoName = extension.pkg.repo
69+
packageName = extension.pkg.name
70+
packageDesc = extension.pkg.desc
71+
packageWebsiteUrl = extension.pkg.websiteUrl
72+
packageIssueTrackerUrl = extension.pkg.issueTrackerUrl
73+
packageVcsUrl = extension.pkg.vcsUrl
74+
packageGithubRepo = extension.pkg.githubRepo
75+
packageGithubReleaseNotesFile = extension.pkg.githubReleaseNotesFile
76+
packageLicenses = extension.pkg.licenses
77+
packageLabels = extension.pkg.labels
78+
packageAttributes = extension.pkg.attributes
79+
packagePublicDownloadNumbers = extension.pkg.publicDownloadNumbers
80+
debianDistribution = extension.pkg.debian.distribution
81+
debianComponent = extension.pkg.debian.component
82+
debianArchitecture = extension.pkg.debian.architecture
83+
versionName = extension.pkg.version.name ?: project.version
84+
versionDesc = extension.pkg.version.desc
85+
versionReleased = extension.pkg.version.released
86+
versionVcsTag = extension.pkg.version.vcsTag ?: project.version
87+
versionAttributes = extension.pkg.version.attributes
88+
signVersion = extension.pkg.version.gpg.sign
89+
gpgPassphrase = extension.pkg.version.gpg.passphrase
90+
syncToMavenCentral = extension.pkg.version.mavenCentralSync.sync == null ?
91+
true : extension.pkg.version.mavenCentralSync.sync
92+
ossUser = extension.pkg.version.mavenCentralSync.user
93+
ossPassword = extension.pkg.version.mavenCentralSync.password
94+
ossCloseRepo = extension.pkg.version.mavenCentralSync.close
95+
}
96+
9997
if (bintrayUpload.extension.configurations?.length) {
10098
bintrayUpload.extension.configurations.each {
10199
def configuration = bintrayUpload.project.configurations.findByName(it)

Diff for: src/main/groovy/com/jfrog/bintray/gradle/tasks/BintrayPublishTask.groovy

+1-1
Original file line numberDiff line numberDiff line change
@@ -24,7 +24,7 @@ class BintrayPublishTask extends DefaultTask {
2424
private void signPublishAndSync() {
2525
HashSet<BintrayUploadTask> tasks = project.getTasksByName(BintrayUploadTask.TASK_NAME, true)
2626
for (BintrayUploadTask task : tasks) {
27-
if (task.getEnabled()) {
27+
if (task.getEnabled() && task.getDidWork()) {
2828
if (task.getSignVersion()) {
2929
gpgSignVersion(task.repoName, task.packageName, task.versionName, task)
3030
}

Diff for: src/main/groovy/com/jfrog/bintray/gradle/tasks/BintrayUploadTask.groovy

+32-32
Original file line numberDiff line numberDiff line change
@@ -193,41 +193,41 @@ class BintrayUploadTask extends DefaultTask {
193193
logger.info("Gradle Bintray Plugin version: ${new Utils().pluginVersion}");
194194
if (getEnabled()) {
195195
validateDebianDefinition()
196-
//TODO: [by yl] replace with findResults for Gradle 2.x
197-
configurationUploads = configurations.collect {
198-
if (it instanceof CharSequence) {
199-
Configuration configuration = project.configurations.findByName(it)
200-
if (configuration != null) {
201-
return collectArtifacts(configuration)
196+
//TODO: [by yl] replace with findResults for Gradle 2.x
197+
configurationUploads = configurations.collect {
198+
if (it instanceof CharSequence) {
199+
Configuration configuration = project.configurations.findByName(it)
200+
if (configuration != null) {
201+
return collectArtifacts(configuration)
202+
} else {
203+
logger.error("{}: Could not find configuration: {}.", path, it)
204+
}
205+
} else if (conf instanceof Configuration) {
206+
return collectArtifacts((Configuration) it)
202207
} else {
203-
logger.error("{}: Could not find configuration: {}.", path, it)
208+
logger.error("{}: Unsupported configuration type: {}.", path, it.class)
204209
}
205-
} else if (conf instanceof Configuration) {
206-
return collectArtifacts((Configuration) it)
207-
} else {
208-
logger.error("{}: Unsupported configuration type: {}.", path, it.class)
209-
}
210-
[]
211-
}.flatten() as Artifact[]
212-
213-
publicationUploads = publications.collect {
214-
if (it instanceof CharSequence) {
215-
Publication publication = project.extensions.getByType(PublishingExtension).publications.findByName(it)
216-
if (publication != null) {
217-
return collectArtifacts(publication)
210+
[]
211+
}.flatten() as Artifact[]
212+
213+
publicationUploads = publications.collect {
214+
if (it instanceof CharSequence) {
215+
Publication publication = project.extensions.getByType(PublishingExtension).publications.findByName(it)
216+
if (publication != null) {
217+
return collectArtifacts(publication)
218+
} else {
219+
logger.error("{}: Could not find publication: {}.", path, it);
220+
}
221+
} else if (conf instanceof MavenPublication) {
222+
return collectArtifacts((Configuration) it)
218223
} else {
219-
logger.error("{}: Could not find publication: {}.", path, it);
224+
logger.error("{}: Unsupported publication type: {}.", path, it.class)
220225
}
221-
} else if (conf instanceof MavenPublication) {
222-
return collectArtifacts((Configuration) it)
223-
} else {
224-
logger.error("{}: Unsupported publication type: {}.", path, it.class)
225-
}
226-
[]
227-
}.flatten() as Artifact[]
226+
[]
227+
}.flatten() as Artifact[]
228228

229-
RecordingCopyTask recordingCopyTask = getDependsOn().find { it instanceof RecordingCopyTask }
230-
fileUploads = (recordingCopyTask ? recordingCopyTask.fileUploads : []) as Artifact[]
229+
RecordingCopyTask recordingCopyTask = getDependsOn().find { it instanceof RecordingCopyTask }
230+
fileUploads = (recordingCopyTask ? recordingCopyTask.fileUploads : []) as Artifact[]
231231

232232
if (repoName == null || versionName == null || packageName == null) {
233233
logger.warn("Repository name, package name or version name are null for project: " + project.getDisplayName())
@@ -399,10 +399,10 @@ class BintrayUploadTask extends DefaultTask {
399399
Package pkg = getRepository().packages.get(packageName)
400400
if (!pkg) {
401401
throw new IllegalStateException(
402-
"Attempted checking and creating version, before checking and creating the package.")
402+
"Attempted checking and creating version, before checking and creating the package.")
403403
}
404404
Version v = new Version(
405-
versionName, signVersion, gpgPassphrase, publish, shouldSyncToMavenCentral())
405+
versionName, signVersion, gpgPassphrase, publish, shouldSyncToMavenCentral())
406406
Version version = pkg.addVersionIfAbsent(v)
407407
if (version && !version.created) {
408408
synchronized (version) {

Diff for: src/main/groovy/com/jfrog/bintray/gradle/tasks/RecordingCopyTask.groovy

+2-2
Original file line numberDiff line numberDiff line change
@@ -4,10 +4,10 @@ import com.jfrog.bintray.gradle.tasks.entities.Artifact
44
import org.gradle.api.internal.file.copy.CopyAction
55
import org.gradle.api.internal.file.copy.CopyActionProcessingStream
66
import org.gradle.api.internal.file.copy.FileCopyDetailsInternal
7-
import org.gradle.api.internal.tasks.SimpleWorkResult
87
import org.gradle.api.tasks.Copy
98
import org.gradle.api.tasks.Optional
109
import org.gradle.api.tasks.SkipWhenEmpty
10+
import org.gradle.api.tasks.WorkResults
1111

1212
class RecordingCopyTask extends Copy {
1313

@@ -37,7 +37,7 @@ class RecordingCopyTask extends Copy {
3737
didWork = true
3838
}
3939
}
40-
new SimpleWorkResult(true)
40+
WorkResults.didWork(true)
4141
}
4242
}
4343
}

0 commit comments

Comments
 (0)