@@ -7,13 +7,15 @@ import java.util.jar.JarFile
77plugins {
88 kotlin(" jvm" ) version(libs.versions.kotlin)
99 id(" com.gradle.plugin-publish" ) version " 1.2.0"
10+ id(" com.github.breadmoirai.github-release" ) version " 2.4.1"
1011 signing
1112 groovy
1213 alias(libs.plugins.shadow.jar)
1314}
1415
1516val releaseVersion = loadReleaseVersion()
1617val releaseNotes = loadReleaseNotes()
18+ val releaseTag = " v${releaseVersion} "
1719val pluginGroup = " org.gradle"
1820val pluginArtifactId = " github-dependency-graph-gradle-plugin"
1921
@@ -185,3 +187,40 @@ fun loadReleaseNotes():String {
185187 val releaseNotesFile = rootProject.layout.projectDirectory.file(" release/changes.md" )
186188 return providers.fileContents(releaseNotesFile).asText.map { it.trim() }.get()
187189}
190+
191+ val createReleaseTag = tasks.register<CreateGitTag >(" createReleaseTag" ) {
192+ tagName.set(releaseTag)
193+ }
194+
195+ githubRelease {
196+ setToken(System .getenv(" GITHUB_DEPENDENCY_GRAPH_GIT_TOKEN" ) ? : " " )
197+ owner.set(" gradle" )
198+ repo.set(" github-dependency-extractor" )
199+ releaseName.set(releaseVersion)
200+ tagName.set(releaseTag)
201+ prerelease.set(true )
202+ body.set(releaseNotes)
203+ }
204+
205+ tasks.named(" githubRelease" ).configure {
206+ dependsOn(createReleaseTag)
207+ }
208+
209+ abstract class CreateGitTag : DefaultTask () {
210+
211+ @get:Input abstract val tagName: Property <String >
212+
213+ @get:Inject abstract val execOperations: ExecOperations
214+
215+ @TaskAction
216+ fun action () {
217+ logger.info(" Tagging HEAD as ${tagName.get()} " )
218+ execOperations.exec {
219+ commandLine(" git" , " tag" , " -f" , tagName.get())
220+ }
221+ execOperations.exec {
222+ commandLine(" git" , " push" , " origin" , " -f" , " --tags" )
223+ }
224+ }
225+ }
226+
0 commit comments