Add a report to discord task #21
@ -64,5 +64,7 @@ jobs:
|
|||||||
chmod +x ./gradlew
|
chmod +x ./gradlew
|
||||||
touch local.properties
|
touch local.properties
|
||||||
- name: deploy
|
- name: deploy
|
||||||
run: ./gradlew publish
|
run: |
|
||||||
|
./gradlew publish
|
||||||
|
./gradlew reportToDiscord
|
||||||
|
|
||||||
|
14
build.gradle
14
build.gradle
@ -1,3 +1,5 @@
|
|||||||
|
import fr.altarik.ReportDiscord
|
||||||
|
|
||||||
plugins {
|
plugins {
|
||||||
id 'fabric-loom' version '1.2-SNAPSHOT' apply false
|
id 'fabric-loom' version '1.2-SNAPSHOT' apply false
|
||||||
}
|
}
|
||||||
@ -7,6 +9,14 @@ try {
|
|||||||
local.load(new FileInputStream(rootProject.file("local.properties")))
|
local.load(new FileInputStream(rootProject.file("local.properties")))
|
||||||
} catch (IOException ignored) {}
|
} catch (IOException ignored) {}
|
||||||
|
|
||||||
|
group = project.maven_group
|
||||||
|
version = project.maven_version
|
||||||
|
|
||||||
|
String webhookId = getEnv("DISCORD_PUB_ID", local.getProperty("discord_pub_id"))
|
||||||
|
String webhookToken = getEnv("DISCORD_PUB_TOKEN", local.getProperty("discord_pub_token"))
|
||||||
|
String repoUrl = "https://repo.altarik.fr/#/" + (project.version.endsWith('SNAPSHOT') ? 'snapshots/' : 'releases/') + project.group.replace(".", "/") + "/" + project.rootProject.name + "/" + project.version
|
||||||
|
|
||||||
|
var reportConfig = new ReportDiscord.ReportData("https://discord.com/api/", webhookId, webhookToken, "Update " + project.version + " has been published", repoUrl);
|
||||||
|
|
||||||
allprojects {
|
allprojects {
|
||||||
apply plugin: 'maven-publish'
|
apply plugin: 'maven-publish'
|
||||||
@ -110,6 +120,10 @@ static def getEnv(String envName, String defaultValue) {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
tasks.register("reportToDiscord", ReportDiscord) {
|
||||||
|
config.set(reportConfig)
|
||||||
|
}
|
||||||
|
|
||||||
/*jar {
|
/*jar {
|
||||||
dependsOn subprojects.jar
|
dependsOn subprojects.jar
|
||||||
subprojects.each { project ->
|
subprojects.each { project ->
|
||||||
|
11
buildSrc/build.gradle
Normal file
11
buildSrc/build.gradle
Normal file
@ -0,0 +1,11 @@
|
|||||||
|
plugins {
|
||||||
|
id 'java'
|
||||||
|
}
|
||||||
|
|
||||||
|
dependencies {
|
||||||
|
implementation "com.squareup.okhttp3:okhttp:${project.okhttp_version}"
|
||||||
|
}
|
||||||
|
|
||||||
|
repositories {
|
||||||
|
mavenCentral()
|
||||||
|
}
|
1
buildSrc/gradle.properties
Normal file
1
buildSrc/gradle.properties
Normal file
@ -0,0 +1 @@
|
|||||||
|
okhttp_version=4.10.0
|
7
buildSrc/settings.gradle
Normal file
7
buildSrc/settings.gradle
Normal file
@ -0,0 +1,7 @@
|
|||||||
|
pluginManagement {
|
||||||
|
repositories {
|
||||||
|
mavenCentral()
|
||||||
|
gradlePluginPortal()
|
||||||
|
}
|
||||||
|
}
|
||||||
|
rootProject.name = "buildSrc"
|
51
buildSrc/src/main/java/fr/altarik/ReportDiscord.java
Normal file
51
buildSrc/src/main/java/fr/altarik/ReportDiscord.java
Normal file
@ -0,0 +1,51 @@
|
|||||||
|
package fr.altarik;
|
||||||
|
|
||||||
|
import okhttp3.*;
|
||||||
|
import org.gradle.api.DefaultTask;
|
||||||
|
import org.gradle.api.provider.Property;
|
||||||
|
import org.gradle.api.tasks.Input;
|
||||||
|
import org.gradle.api.tasks.TaskAction;
|
||||||
|
|
||||||
|
import java.io.IOException;
|
||||||
|
|
||||||
|
public abstract class ReportDiscord extends DefaultTask {
|
||||||
|
|
||||||
|
public static final MediaType JSON = MediaType.get("application/json; charset=utf-8");
|
||||||
|
|
||||||
|
@Input
|
||||||
|
public abstract Property<ReportData> getConfig();
|
||||||
|
|
||||||
|
private final OkHttpClient client = new OkHttpClient();
|
||||||
|
|
||||||
|
@TaskAction
|
||||||
|
public void report() throws IOException {
|
||||||
|
ReportData data = getConfig().get();
|
||||||
|
String message = data.message();
|
||||||
|
RequestBody body = RequestBody.create("""
|
||||||
|
{
|
||||||
|
"embeds": [
|
||||||
|
{
|
||||||
|
"title": "A new update for Toolbox is available",
|
||||||
|
"description":\s""" + "\"" + message + "\"" + """
|
||||||
|
,
|
||||||
|
"url":\s""" + "\"" + data.url() + "\"" + """
|
||||||
|
}
|
||||||
|
]
|
||||||
|
}
|
||||||
|
""", JSON);
|
||||||
|
|
||||||
|
String url = data.baseUrl() + "/webhooks/" + data.webhookId + "/" + data.webhookToken;
|
||||||
|
Request request = new Request.Builder()
|
||||||
|
.url(url)
|
||||||
|
.post(body)
|
||||||
|
.build();
|
||||||
|
try(Response response = client.newCall(request).execute()) {
|
||||||
|
getLogger().info("report sent");
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
public record ReportData(String baseUrl, String webhookId, String webhookToken, String message, String url) {
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
Loading…
Reference in New Issue
Block a user