From ad50069017f47fe0e1a34f4403e9de47ec2892b3 Mon Sep 17 00:00:00 2001 From: Jared Date: Wed, 14 Apr 2021 18:27:09 +0200 Subject: [PATCH] add discord webhook --- build.gradle | 66 +++++++++++++++++++++++++++++++++++++++++++++++++++- 1 file changed, 65 insertions(+), 1 deletion(-) diff --git a/build.gradle b/build.gradle index 7463224..7ad96c1 100644 --- a/build.gradle +++ b/build.gradle @@ -1,4 +1,8 @@ import groovy.json.JsonOutput +import com.diluv.schoomp.Webhook +import com.diluv.schoomp.message.Message +import com.diluv.schoomp.message.embed.Embed +import com.diluv.schoomp.message.embed.Footer buildscript { repositories { @@ -8,6 +12,7 @@ buildscript { } dependencies { classpath group: 'net.minecraftforge.gradle', name: 'ForgeGradle', version: '3.+', changing: true + classpath group: 'com.diluv.schoomp', name: 'Schoomp', version: '1.1.0' } } plugins { @@ -87,7 +92,7 @@ repositories { dependencies { minecraft 'net.minecraftforge:forge:1.16.5-36.0.1' implementation fg.deobf("curse.maven:create-328085:3167531") - compile fg.deobf("com.blamejared.crafttweaker:CraftTweaker-1.16.5:7.1.0.91") + compile fg.deobf("com.blamejared.crafttweaker:CraftTweaker-1.16.5:7.1.0.203") compile fg.deobf("mezz.jei:jei-1.16.4:7.6.1.65") } @@ -153,6 +158,37 @@ curseforge { } } +tasks.getByName("curseforge").doLast { + + try { + def name = project.findProperty('name') + def mcVersion = "1.16.5" + def cursePage = "https://www.curseforge.com/minecraft/mc-mods/createtweaker" + def curseProject = "437717" + // Reads the file ID given to us by CurseForge + def newFileId = tasks.getByName("curseforge${curseProject}").property('mainArtifact').fileID + + def webhook = new Webhook(findProperty('discordCFWebhook'), "${name} Gradle Upload") + + def message = new Message() + message.setUsername(name) + message.setContent("${name} ${version} for Minecraft ${mcVersion} has been released! The download will be available soon.") + + def embed = new Embed() + embed.addField('Download', "${cursePage}/files/$newFileId", false) + embed.addField('Change Log', "${getCIChangelog() ?: 'Unavailable'}", false) + + embed.setColor(0xF16436) + message.addEmbed(embed) + message.setAvatarUrl("https://media.forgecdn.net/avatars/333/541/637466462865206010.png") + webhook.sendMessage(message) + } + + catch (IOException e) { + println 'Failed to push to the Discord webhook.' + } +} + task updateVersionTracker { onlyIf { @@ -209,4 +245,32 @@ task genGitChangelog() { file.write("### Current version: " + project.version) file.append("\n" + stdout.toString()) System.out.println("Changelog generated!") +} + +def getCIChangelog() { + // This method handles getting short changelogs from Jenkins itself instead of long changelogs + String repoLink = "https://github.com/jaredlll08/CreateTweaker/commit/" + try { + def stdout = new ByteArrayOutputStream() + def gitHash = System.getenv('GIT_COMMIT') + def gitPrevHash = System.getenv('GIT_PREVIOUS_COMMIT') + if(gitHash && gitPrevHash) { + exec { + commandLine 'git', 'log', '--pretty=tformat:- [%s](' + repoLink + '%H) - %aN ', '' + gitPrevHash + '...' + gitHash + standardOutput = stdout + } + return stdout.toString().trim() + } + else if (gitHash) { + exec { + commandLine 'git', 'log', '--pretty=tformat:- [%s](' + repoLink + '%H) - %aN', '-1', '' + gitHash + standardOutput = stdout + } + return stdout.toString().trim() + } else { + return ""; + } + } catch(ignored) { + return ""; + } } \ No newline at end of file