Add quick-e2e tool for E2E environment setup

This commit is contained in:
Oliver
2025-03-16 17:17:23 +01:00
parent a4dee79d3c
commit b2fc904441
5 changed files with 131 additions and 1 deletions

View File

@@ -25,3 +25,4 @@ include(":libraries:packets:test_plugin")
include(":tools:deployment") include(":tools:deployment")
include(":tools:quick-e2e")

50
tools/quick-e2e/README.md Normal file
View File

@@ -0,0 +1,50 @@
# Quick E2E environment setup
## Features
Generate a new E2E environment with the following options:
- **Server type**: paper, folia ...
- **Server version**: 1.19.4, 1.20.1 ...
- **Server Build**: latest, a specific build
- **Pre-installed plugins**: links to modrinth
- **Custom plugin providers**: build from monorepo
- **EULA**: true, false
- **OP**: a specific username
Update an existing E2E environment, if there is a new build or plugin version available.
Delete an existing E2E environment.
## Usage
### Generate a new E2E environment
Command line arguments:
```bash
java -jar quick-e2e.jar
--<generate|update|delete>
--server-type paper
--server-version 1.21.4
--server-build latest
--pre-installed-plugins "viaversion,luckperms,worldedit"
--custom-plugin-providers "monorepo"
--eula true
--op "OliverHD"
```
Configuration file:
```json
{
"serverType": "paper",
"serverVersion": "1.21.4",
"serverBuild": "latest",
"preInstalledPlugins": ["viaversion", "luckperms", "worldedit"],
"customPluginProviders": ["monorepo"],
"eula": true,
"op": "OliverHD"
}
```
```bash
java -jar quick-e2e.jar --generate --config-file config.json
```

View File

@@ -0,0 +1,59 @@
plugins {
id("java")
id("maven-publish")
id("com.gradleup.shadow")
}
group = "de.oliver"
description = "Tool to setup a complete environment for testing"
java {
toolchain.languageVersion.set(JavaLanguageVersion.of(21))
}
repositories {
mavenCentral()
maven("https://repo.papermc.io/repository/maven-public/")
maven("https://repo.fancyplugins.de/releases")
}
dependencies {
compileOnly("com.google.code.gson:gson:2.12.1")
implementation("com.squareup.okhttp3:okhttp:4.12.0")
implementation("org.jetbrains:annotations:26.0.2")
implementation("de.oliver.FancyAnalytics:java-sdk:0.0.2")
implementation("de.oliver.FancyAnalytics:logger:0.0.6")
}
tasks {
jar {
manifest {
attributes["Main-Class"] = "de.oliver.deployment.Main"
}
}
shadowJar{
archiveClassifier.set("")
}
compileJava {
options.encoding = Charsets.UTF_8.name() // We want UTF-8 for everything
// Set the release flag. This configures what version bytecode the compiler will emit, as well as what JDK APIs are usable.
// See https://openjdk.java.net/jeps/247 for more information.
options.release.set(21)
}
java {
withSourcesJar()
withJavadocJar()
}
javadoc {
options.encoding = Charsets.UTF_8.name() // We want UTF-8 for everything
}
processResources {
filteringCharset = Charsets.UTF_8.name() // We want UTF-8 for everything
}
}

View File

@@ -0,0 +1,11 @@
### Get project list
GET https://api.papermc.io/v2/projects/
### Get version list of a project
GET https://api.papermc.io/v2/projects/paper
### Get build list of a version
GET https://api.papermc.io/v2/projects/paper/versions/1.21.4
### Download a build
GET https://api.papermc.io/v2/projects/paper/versions/1.21.4/builds/211/downloads/paper-1.21.4-211.jar

View File

@@ -0,0 +1,9 @@
package de.oliver.quicke2e;
public class Main {
public static void main(String[] args) {
}
}