Skip to content

Commit 72b9436

Browse files
committed
Allow specific promotion type (either 'latest' or 'recommended')
Also, fix webhook secret being used for username and password. Oops.
1 parent f8b27f2 commit 72b9436

File tree

2 files changed

+27
-17
lines changed

2 files changed

+27
-17
lines changed

src/main/groovy/net/minecraftforge/gradleutils/PomUtils.groovy

Lines changed: 13 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -91,6 +91,19 @@ final class PomUtils {
9191
PromoteArtifact.register(this.project, publication)
9292
}
9393

94+
void promote(MavenPublication publication, String promotionType) {
95+
PromoteArtifact.Type type
96+
try {
97+
type = PromoteArtifact.Type.valueOf(promotionType.toUpperCase())
98+
} catch (IllegalArgumentException e) {
99+
throw new IllegalArgumentException("Invalid promotion type: $promotionType. Known types: ${PromoteArtifact.Type.values()*.toString()}", e)
100+
}
101+
102+
PromoteArtifact.register(this.project, publication).configure { task ->
103+
task.promotionType.set type
104+
}
105+
}
106+
94107
/**
95108
* Reduces boilerplate when setting up GitHub details in a {@link MavenPom}.
96109
*

src/main/groovy/net/minecraftforge/gradleutils/PromoteArtifact.groovy

Lines changed: 14 additions & 17 deletions
Original file line numberDiff line numberDiff line change
@@ -28,29 +28,26 @@ import java.time.Duration
2828
@ApiStatus.Experimental
2929
abstract class PromoteArtifact extends DefaultTask {
3030
static TaskProvider<PromoteArtifact> register(Project project, MavenPublication publication) {
31-
project.tasks.register('promoteArtifact', PromoteArtifact) { task ->
32-
final webhookURL = GradleUtils.getEnvVar('PROMOTE_ARTIFACT_WEBHOOK', project.providers)
33-
final username = GradleUtils.getEnvVar('PROMOTE_ARTIFACT_WEBHOOK', project.providers)
34-
final password = GradleUtils.getEnvVar('PROMOTE_ARTIFACT_WEBHOOK', project.providers)
35-
task.onlyIf { webhookURL.present && username.present && password.present }
36-
37-
task.artifactGroup.set publication.groupId
38-
task.artifactName.set publication.artifactId
39-
task.artifactVersion.set publication.version
40-
task.webhookURL.set webhookURL
41-
task.username.set username
42-
task.password.set password
43-
}
31+
project.tasks.register('promoteArtifact', PromoteArtifact, publication)
4432
}
4533

4634
@Inject
4735
abstract ProviderFactory getProviders()
4836

49-
PromoteArtifact() {
50-
this.artifactGroup.convention 'net.minecraftforge'
51-
this.artifactName.convention this.providers.provider { this.project.name }
52-
this.artifactVersion.convention this.providers.provider { String.valueOf this.project.version }
37+
PromoteArtifact(MavenPublication publication) {
5338
this.promotionType.convention Type.LATEST
39+
40+
final webhookURL0 = GradleUtils.getEnvVar('PROMOTE_ARTIFACT_WEBHOOK', this.providers)
41+
final username0 = GradleUtils.getEnvVar('PROMOTE_ARTIFACT_USERNAME', this.providers)
42+
final password0 = GradleUtils.getEnvVar('PROMOTE_ARTIFACT_PASSWORD', this.providers)
43+
this.onlyIf { webhookURL0.present && username0.present && password0.present }
44+
45+
this.artifactGroup.set this.providers.provider { publication.groupId }
46+
this.artifactName.set this.providers.provider { publication.artifactId }
47+
this.artifactVersion.set this.providers.provider { publication.version }
48+
this.webhookURL.set webhookURL0
49+
this.username.set username0
50+
this.password.set password0
5451
}
5552

5653
@Input

0 commit comments

Comments
 (0)