From 47bb6f7a10194e6a90a3765609a85e175bd88dc5 Mon Sep 17 00:00:00 2001 From: Oliver <79666085+OliverSchlueter@users.noreply.github.com> Date: Wed, 3 Dec 2025 16:11:23 +0100 Subject: [PATCH] ci: Use FancyVerteiler (#170) * ci: Use FancyVerteiler for FD snapshot * Update configs * Revert some stuff * Use FancyVerteiler for all plugins * Fixes * Fix * Delete deployment tool --- .../workflows/deploy-release-fancydialogs.yml | 30 +++---- .../deploy-release-fancyholograms-v2.yml | 30 +++---- .../deploy-release-fancyholograms.yml | 30 +++---- .../workflows/deploy-release-fancynpcs.yml | 30 +++---- .../deploy-snapshot-fancydialogs.yml | 26 +++--- .../deploy-snapshot-fancyholograms-v2.yml | 26 +++--- .../deploy-snapshot-fancyholograms.yml | 26 +++--- .../workflows/deploy-snapshot-fancynpcs.yml | 40 +++------ README.md | 1 - .../release_deployment_config.json | 38 ++++----- .../snapshot_deployment_config.json | 38 ++++----- .../release_deployment_config.json | 64 ++++++++------- .../snapshot_deployment_config.json | 64 ++++++++------- .../release_deployment_config.json | 55 ++++++------- .../snapshot_deployment_config.json | 54 +++++++------ .../fancynpcs/release_deployment_config.json | 64 ++++++++------- .../fancynpcs/snapshot_deployment_config.json | 64 ++++++++------- settings.gradle.kts | 1 - tools/deployment/build.gradle.kts | 61 -------------- tools/deployment/example-config.json | 28 ------- .../de/oliver/deployment/Configuration.java | 29 ------- .../main/java/de/oliver/deployment/Main.java | 81 ------------------- .../de/oliver/deployment/git/GitService.java | 37 --------- .../deployment/modrinth/ModrinthService.java | 68 ---------------- .../notification/DiscordWebhook.java | 35 -------- 25 files changed, 324 insertions(+), 696 deletions(-) delete mode 100644 tools/deployment/build.gradle.kts delete mode 100644 tools/deployment/example-config.json delete mode 100644 tools/deployment/src/main/java/de/oliver/deployment/Configuration.java delete mode 100644 tools/deployment/src/main/java/de/oliver/deployment/Main.java delete mode 100644 tools/deployment/src/main/java/de/oliver/deployment/git/GitService.java delete mode 100644 tools/deployment/src/main/java/de/oliver/deployment/modrinth/ModrinthService.java delete mode 100644 tools/deployment/src/main/java/de/oliver/deployment/notification/DiscordWebhook.java diff --git a/.github/workflows/deploy-release-fancydialogs.yml b/.github/workflows/deploy-release-fancydialogs.yml index 4455db0c..753e9290 100644 --- a/.github/workflows/deploy-release-fancydialogs.yml +++ b/.github/workflows/deploy-release-fancydialogs.yml @@ -2,8 +2,9 @@ name: Deploy FancyDialogs (release) on: workflow_dispatch: + jobs: - deploy-plugin: + deploy: runs-on: ubuntu-latest steps: @@ -27,25 +28,20 @@ jobs: - name: Modify gradlew permissions run: chmod +x ./gradlew - - name: Build deployment tool - run: ./gradlew :tools:deployment:shadowJar - - - name: Build FancyDialogs for Modrinth + - name: Build env: RELEASE_CHANNEL: 'release' - RELEASE_PLATFORM: 'modrinth' run: ./gradlew :plugins:fancydialogs:shadowJar - - name: Deploy to Modrinth - env: - MODRINTH_API_KEY: ${{ secrets.MODRINTH_API_KEY }} - DISCORD_WEBHOOK_URL: ${{ secrets.DISCORD_WEBHOOK_URL }} - run: - cd tools/deployment/build/libs && - java -jar deployment.jar modrinth ../../../../plugins/fancydialogs/release_deployment_config.json true + - name: Deploy + uses: fancyinnovations/fancyverteiler@main + with: + config_path: "/plugins/fancydialogs/release_deployment_config.json" + modrinth_api_key: ${{ secrets.MODRINTH_API_KEY }} + discord_webhook_url: ${{ secrets.DISCORD_WEBHOOK_URL }} - - name: Publish to reposilite (releases) - run: ./gradlew :plugins:fancydialogs:fd-api:publishAllPublicationsToFancyinnovationsReleasesRepository + # - name: Publish to reposilite (releases) + # run: ./gradlew :plugins:fancydialogs:fd-api:publishAllPublicationsToFancyinnovationsReleasesRepository - - name: Publish to reposilite (snapshots) - run: ./gradlew :plugins:fancydialogs:fd-api:publishAllPublicationsToFancyinnovationsSnapshotsRepository \ No newline at end of file + # - name: Publish to reposilite (snapshots) + # run: ./gradlew :plugins:fancydialogs:fd-api:publishAllPublicationsToFancyinnovationsSnapshotsRepository \ No newline at end of file diff --git a/.github/workflows/deploy-release-fancyholograms-v2.yml b/.github/workflows/deploy-release-fancyholograms-v2.yml index 048adbaf..61cd0e08 100644 --- a/.github/workflows/deploy-release-fancyholograms-v2.yml +++ b/.github/workflows/deploy-release-fancyholograms-v2.yml @@ -2,8 +2,9 @@ name: Deploy FancyHolograms v2 (release) on: workflow_dispatch: + jobs: - deploy-plugin: + deploy: runs-on: ubuntu-latest steps: @@ -27,25 +28,20 @@ jobs: - name: Modify gradlew permissions run: chmod +x ./gradlew - - name: Build deployment tool - run: ./gradlew :tools:deployment:shadowJar - - - name: Build FancyHolograms v2 for Modrinth + - name: Build env: RELEASE_CHANNEL: 'release' - RELEASE_PLATFORM: 'modrinth' run: ./gradlew :plugins:fancyholograms-v2:shadowJar - - name: Deploy to Modrinth - env: - MODRINTH_API_KEY: ${{ secrets.MODRINTH_API_KEY }} - DISCORD_WEBHOOK_URL: ${{ secrets.DISCORD_WEBHOOK_URL }} - run: - cd tools/deployment/build/libs && - java -jar deployment.jar modrinth ../../../../plugins/fancyholograms-v2/release_deployment_config.json true + - name: Deploy + uses: fancyinnovations/fancyverteiler@main + with: + config_path: "/plugins/fancyholograms-v2/release_deployment_config.json" + modrinth_api_key: ${{ secrets.MODRINTH_API_KEY }} + discord_webhook_url: ${{ secrets.DISCORD_WEBHOOK_URL }} - - name: Publish to reposilite (releases) - run: ./gradlew :plugins:fancyholograms-v2:api:publishAllPublicationsToFancyinnovationsReleasesRepository + # - name: Publish to reposilite (releases) + # run: ./gradlew :plugins:fancyholograms-v2:api:publishAllPublicationsToFancyinnovationsReleasesRepository - - name: Publish to reposilite (snapshots) - run: ./gradlew :plugins:fancyholograms-v2:api:publishAllPublicationsToFancyinnovationsSnapshotsRepository \ No newline at end of file + # - name: Publish to reposilite (snapshots) + # run: ./gradlew :plugins:fancyholograms-v2:api:publishAllPublicationsToFancyinnovationsSnapshotsRepository \ No newline at end of file diff --git a/.github/workflows/deploy-release-fancyholograms.yml b/.github/workflows/deploy-release-fancyholograms.yml index aabbde73..7615968e 100644 --- a/.github/workflows/deploy-release-fancyholograms.yml +++ b/.github/workflows/deploy-release-fancyholograms.yml @@ -2,8 +2,9 @@ name: Deploy FancyHolograms (release) on: workflow_dispatch: + jobs: - deploy-plugin: + deploy: runs-on: ubuntu-latest steps: @@ -27,25 +28,20 @@ jobs: - name: Modify gradlew permissions run: chmod +x ./gradlew - - name: Build deployment tool - run: ./gradlew :tools:deployment:shadowJar - - - name: Build FancyHolograms for Modrinth + - name: Build env: RELEASE_CHANNEL: 'release' - RELEASE_PLATFORM: 'modrinth' run: ./gradlew :plugins:fancyholograms:shadowJar - - name: Deploy to Modrinth - env: - MODRINTH_API_KEY: ${{ secrets.MODRINTH_API_KEY }} - DISCORD_WEBHOOK_URL: ${{ secrets.DISCORD_WEBHOOK_URL }} - run: - cd tools/deployment/build/libs && - java -jar deployment.jar modrinth ../../../../plugins/fancyholograms/release_deployment_config.json true + - name: Deploy + uses: fancyinnovations/fancyverteiler@main + with: + config_path: "/plugins/fancyholograms/release_deployment_config.json" + modrinth_api_key: ${{ secrets.MODRINTH_API_KEY }} + discord_webhook_url: ${{ secrets.DISCORD_WEBHOOK_URL }} - - name: Publish to reposilite (releases) - run: ./gradlew :plugins:fancyholograms:fh-api:publishAllPublicationsToFancyinnovationsReleasesRepository + # - name: Publish to reposilite (releases) + # run: ./gradlew :plugins:fancyholograms:fh-api:publishAllPublicationsToFancyinnovationsReleasesRepository - - name: Publish to reposilite (snapshots) - run: ./gradlew :plugins:fancyholograms:fh-api:publishAllPublicationsToFancyinnovationsSnapshotsRepository \ No newline at end of file + # - name: Publish to reposilite (snapshots) + # run: ./gradlew :plugins:fancyholograms:fh-api:publishAllPublicationsToFancyinnovationsSnapshotsRepository \ No newline at end of file diff --git a/.github/workflows/deploy-release-fancynpcs.yml b/.github/workflows/deploy-release-fancynpcs.yml index 18b4cedd..7296ed72 100644 --- a/.github/workflows/deploy-release-fancynpcs.yml +++ b/.github/workflows/deploy-release-fancynpcs.yml @@ -2,8 +2,9 @@ name: Deploy FancyNpcs (release) on: workflow_dispatch: + jobs: - deploy-plugin: + deploy: runs-on: ubuntu-latest steps: @@ -27,25 +28,20 @@ jobs: - name: Modify gradlew permissions run: chmod +x ./gradlew - - name: Build deployment tool - run: ./gradlew :tools:deployment:shadowJar - - - name: Build FancyNpcs for Modrinth + - name: Build env: RELEASE_CHANNEL: 'release' - RELEASE_PLATFORM: 'modrinth' run: ./gradlew :plugins:fancynpcs:shadowJar - - name: Deploy to Modrinth - env: - MODRINTH_API_KEY: ${{ secrets.MODRINTH_API_KEY }} - DISCORD_WEBHOOK_URL: ${{ secrets.DISCORD_WEBHOOK_URL }} - run: - cd tools/deployment/build/libs && - java -jar deployment.jar modrinth ../../../../plugins/fancynpcs/release_deployment_config.json true + - name: Deploy + uses: fancyinnovations/fancyverteiler@main + with: + config_path: "/plugins/fancynpcs/release_deployment_config.json" + modrinth_api_key: ${{ secrets.MODRINTH_API_KEY }} + discord_webhook_url: ${{ secrets.DISCORD_WEBHOOK_URL }} - - name: Publish to reposilite (releases) - run: ./gradlew :plugins:fancynpcs:fn-api:publishAllPublicationsToFancyinnovationsReleasesRepository + # - name: Publish to reposilite (releases) + # run: ./gradlew :plugins:fancynpcs:fn-api:publishAllPublicationsToFancyinnovationsReleasesRepository - - name: Publish to reposilite (snapshots) - run: ./gradlew :plugins:fancynpcs:fn-api:publishAllPublicationsToFancyinnovationsSnapshotsRepository \ No newline at end of file + # - name: Publish to reposilite (snapshots) + # run: ./gradlew :plugins:fancynpcs:fn-api:publishAllPublicationsToFancyinnovationsSnapshotsRepository \ No newline at end of file diff --git a/.github/workflows/deploy-snapshot-fancydialogs.yml b/.github/workflows/deploy-snapshot-fancydialogs.yml index 22c38541..1ab15b01 100644 --- a/.github/workflows/deploy-snapshot-fancydialogs.yml +++ b/.github/workflows/deploy-snapshot-fancydialogs.yml @@ -2,8 +2,9 @@ name: Deploy FancyDialogs (snapshot) on: workflow_dispatch: + jobs: - deploy-fancydialogs: + deploy: runs-on: ubuntu-latest steps: @@ -27,22 +28,17 @@ jobs: - name: Modify gradlew permissions run: chmod +x ./gradlew - - name: Build deployment tool - run: ./gradlew :tools:deployment:shadowJar - - - name: Build FancyDialogs for Modrinth + - name: Build env: RELEASE_CHANNEL: 'snapshot' - RELEASE_PLATFORM: 'modrinth' run: ./gradlew :plugins:fancydialogs:shadowJar - - name: Deploy to Modrinth - env: - MODRINTH_API_KEY: ${{ secrets.MODRINTH_API_KEY }} - DISCORD_WEBHOOK_URL: ${{ secrets.DISCORD_WEBHOOK_URL }} - run: - cd tools/deployment/build/libs && - java -jar deployment.jar modrinth ../../../../plugins/fancydialogs/snapshot_deployment_config.json true + - name: Deploy + uses: fancyinnovations/fancyverteiler@main + with: + config_path: "/plugins/fancydialogs/snapshot_deployment_config.json" + modrinth_api_key: ${{ secrets.MODRINTH_API_KEY }} + discord_webhook_url: ${{ secrets.DISCORD_WEBHOOK_URL }} - - name: Publish to reposilite (snapshots) - run: ./gradlew :plugins:fancydialogs:fd-api:publishAllPublicationsToFancyinnovationsSnapshotsRepository \ No newline at end of file +# - name: Publish to reposilite (snapshots) +# run: ./gradlew :plugins:fancydialogs:fd-api:publishAllPublicationsToFancyinnovationsSnapshotsRepository \ No newline at end of file diff --git a/.github/workflows/deploy-snapshot-fancyholograms-v2.yml b/.github/workflows/deploy-snapshot-fancyholograms-v2.yml index b2171079..72d4e16a 100644 --- a/.github/workflows/deploy-snapshot-fancyholograms-v2.yml +++ b/.github/workflows/deploy-snapshot-fancyholograms-v2.yml @@ -2,8 +2,9 @@ name: Deploy FancyHolograms v2 (snapshot) on: workflow_dispatch: + jobs: - deploy-fancyholograms: + deploy: runs-on: ubuntu-latest steps: @@ -27,22 +28,17 @@ jobs: - name: Modify gradlew permissions run: chmod +x ./gradlew - - name: Build deployment tool - run: ./gradlew :tools:deployment:shadowJar - - - name: Build FancyHolograms v2 for Modrinth + - name: Build env: RELEASE_CHANNEL: 'snapshot' - RELEASE_PLATFORM: 'modrinth' run: ./gradlew :plugins:fancyholograms-v2:shadowJar - - name: Deploy to Modrinth - env: - MODRINTH_API_KEY: ${{ secrets.MODRINTH_API_KEY }} - DISCORD_WEBHOOK_URL: ${{ secrets.DISCORD_WEBHOOK_URL }} - run: - cd tools/deployment/build/libs && - java -jar deployment.jar modrinth ../../../../plugins/fancyholograms-v2/snapshot_deployment_config.json true + - name: Deploy + uses: fancyinnovations/fancyverteiler@main + with: + config_path: "/plugins/fancyholograms-v2/snapshot_deployment_config.json" + modrinth_api_key: ${{ secrets.MODRINTH_API_KEY }} + discord_webhook_url: ${{ secrets.DISCORD_WEBHOOK_URL }} - - name: Publish to reposilite (snapshots) - run: ./gradlew :plugins:fancyholograms-v2:api:publishAllPublicationsToFancyinnovationsSnapshotsRepository \ No newline at end of file +# - name: Publish to reposilite (snapshots) +# run: ./gradlew :plugins:fancyholograms-v2:api:publishAllPublicationsToFancyinnovationsSnapshotsRepository \ No newline at end of file diff --git a/.github/workflows/deploy-snapshot-fancyholograms.yml b/.github/workflows/deploy-snapshot-fancyholograms.yml index a93835a0..2ca7532d 100644 --- a/.github/workflows/deploy-snapshot-fancyholograms.yml +++ b/.github/workflows/deploy-snapshot-fancyholograms.yml @@ -2,8 +2,9 @@ name: Deploy FancyHolograms (snapshot) on: workflow_dispatch: + jobs: - deploy-plugin: + deploy: runs-on: ubuntu-latest steps: @@ -27,22 +28,17 @@ jobs: - name: Modify gradlew permissions run: chmod +x ./gradlew - - name: Build deployment tool - run: ./gradlew :tools:deployment:shadowJar - - - name: Build FancyHolograms for Modrinth + - name: Build env: RELEASE_CHANNEL: 'snapshot' - RELEASE_PLATFORM: 'modrinth' run: ./gradlew :plugins:fancyholograms:shadowJar - - name: Deploy to Modrinth - env: - MODRINTH_API_KEY: ${{ secrets.MODRINTH_API_KEY }} - DISCORD_WEBHOOK_URL: ${{ secrets.DISCORD_WEBHOOK_URL }} - run: - cd tools/deployment/build/libs && - java -jar deployment.jar modrinth ../../../../plugins/fancyholograms/snapshot_deployment_config.json true + - name: Deploy + uses: fancyinnovations/fancyverteiler@main + with: + config_path: "/plugins/fancyholograms/snapshot_deployment_config.json" + modrinth_api_key: ${{ secrets.MODRINTH_API_KEY }} + discord_webhook_url: ${{ secrets.DISCORD_WEBHOOK_URL }} - - name: Publish to reposilite (snapshots) - run: ./gradlew :plugins:fancyholograms:fh-api:publishAllPublicationsToFancyinnovationsSnapshotsRepository \ No newline at end of file +# - name: Publish to reposilite (snapshots) +# run: ./gradlew :plugins:fancyholograms:fh-api:publishAllPublicationsToFancyinnovationsSnapshotsRepository \ No newline at end of file diff --git a/.github/workflows/deploy-snapshot-fancynpcs.yml b/.github/workflows/deploy-snapshot-fancynpcs.yml index db180c8f..dc5bd238 100644 --- a/.github/workflows/deploy-snapshot-fancynpcs.yml +++ b/.github/workflows/deploy-snapshot-fancynpcs.yml @@ -2,8 +2,9 @@ name: Deploy FancyNpcs (snapshot) on: workflow_dispatch: + jobs: - deploy-plugin: + deploy: runs-on: ubuntu-latest steps: @@ -27,36 +28,17 @@ jobs: - name: Modify gradlew permissions run: chmod +x ./gradlew - - name: Build deployment tool - run: ./gradlew :tools:deployment:shadowJar - - - name: Build FancyNpcs for Modrinth + - name: Build env: RELEASE_CHANNEL: 'snapshot' - RELEASE_PLATFORM: 'modrinth' run: ./gradlew :plugins:fancynpcs:shadowJar - - name: Deploy to Modrinth - env: - MODRINTH_API_KEY: ${{ secrets.MODRINTH_API_KEY }} - DISCORD_WEBHOOK_URL: ${{ secrets.DISCORD_WEBHOOK_URL }} - run: - cd tools/deployment/build/libs && - java -jar deployment.jar modrinth ../../../../plugins/fancynpcs/snapshot_deployment_config.json true + - name: Deploy + uses: fancyinnovations/fancyverteiler@main + with: + config_path: "/plugins/fancynpcs/snapshot_deployment_config.json" + modrinth_api_key: ${{ secrets.MODRINTH_API_KEY }} + discord_webhook_url: ${{ secrets.DISCORD_WEBHOOK_URL }} - # - name: Build FancyNpcs for Hangar - # env: - # RELEASE_CHANNEL: 'snapshot' - # RELEASE_PLATFORM: 'hangar' - # run: ./gradlew :plugins:fancynpcs:shadowJar - # - # - name: Deploy to Hangar - # env: - # HANGAR_API_KEY: "${{ secrets.HANGAR_API_KEY }}" - # DISCORD_WEBHOOK_URL: ${{ secrets.DISCORD_WEBHOOK_URL }} - # run: - # cd tools/deployment/build/libs && - # java -jar deployment.jar hangar ../../../../plugins/fancynpcs/snapshot_deployment_config.json true - - - name: Publish to reposilite (snapshots) - run: ./gradlew :plugins:fancynpcs:fn-api:publishAllPublicationsToFancyinnovationsSnapshotsRepository \ No newline at end of file +# - name: Publish to reposilite (snapshots) +# run: ./gradlew :plugins:fancynpcs:fn-api:publishAllPublicationsToFancyinnovationsSnapshotsRepository \ No newline at end of file diff --git a/README.md b/README.md index c27169cf..626f8e9e 100644 --- a/README.md +++ b/README.md @@ -35,7 +35,6 @@ This is a [monorepo](docs/src/development-guidelines/monorepo.md) for all plugin - Packets: packet handling library (also called FancySitula) **Tools:** -- Deployment: deploy plugins to platforms like modrinth - Quick E2E: generate a quick end-to-end environment for testing ## Usage diff --git a/plugins/fancydialogs/release_deployment_config.json b/plugins/fancydialogs/release_deployment_config.json index 54a7969b..bf92653f 100644 --- a/plugins/fancydialogs/release_deployment_config.json +++ b/plugins/fancydialogs/release_deployment_config.json @@ -1,21 +1,23 @@ { "project_name": "FancyDialogs", - "project_id": "Sx6YwpnK", - "plugin_jar_path": "../../../../plugins/fancydialogs/build/libs/FancyDialogs-%VERSION%.jar", - "changelog_path": "../../../../plugins/fancydialogs/CHANGELOG.md", - "version_path": "../../../../plugins/fancydialogs/VERSION", - "supported_versions": [ - "1.21.6", - "1.21.7", - "1.21.8", - "1.21.9", - "1.21.10", - "1.21.11" - ], - "channel": "RELEASE", - "loaders": [ - "paper", - "folia" - ], - "featured": true + "plugin_jar_path": "/plugins/fancydialogs/build/libs/FancyDialogs-%VERSION%.jar", + "changelog_path": "/plugins/fancydialogs/CHANGELOG-SNAPSHOT.md", + "version_path": "/plugins/fancydialogs/VERSION", + "modrinth": { + "project_id": "Sx6YwpnK", + "supported_versions": [ + "1.21.6", + "1.21.7", + "1.21.8", + "1.21.9", + "1.21.10", + "1.21.11" + ], + "channel": "release", + "loaders": [ + "paper", + "folia" + ], + "featured": true + } } \ No newline at end of file diff --git a/plugins/fancydialogs/snapshot_deployment_config.json b/plugins/fancydialogs/snapshot_deployment_config.json index f3d14fe2..e38c68b4 100644 --- a/plugins/fancydialogs/snapshot_deployment_config.json +++ b/plugins/fancydialogs/snapshot_deployment_config.json @@ -1,21 +1,23 @@ { "project_name": "FancyDialogs", - "project_id": "Sx6YwpnK", - "plugin_jar_path": "../../../../plugins/fancydialogs/build/libs/FancyDialogs-%VERSION%.jar", - "changelog_path": "../../../../plugins/fancydialogs/CHANGELOG-SNAPSHOT.md", - "version_path": "../../../../plugins/fancydialogs/VERSION", - "supported_versions": [ - "1.21.6", - "1.21.7", - "1.21.8", - "1.21.9", - "1.21.10", - "1.21.11-pre4" - ], - "channel": "BETA", - "loaders": [ - "paper", - "folia" - ], - "featured": false + "plugin_jar_path": "/plugins/fancydialogs/build/libs/FancyDialogs-%VERSION%.jar", + "changelog_path": "/plugins/fancydialogs/CHANGELOG-SNAPSHOT.md", + "version_path": "/plugins/fancydialogs/VERSION", + "modrinth": { + "project_id": "Sx6YwpnK", + "supported_versions": [ + "1.21.6", + "1.21.7", + "1.21.8", + "1.21.9", + "1.21.10", + "1.21.11-pre4" + ], + "channel": "beta", + "loaders": [ + "paper", + "folia" + ], + "featured": false + } } \ No newline at end of file diff --git a/plugins/fancyholograms-v2/release_deployment_config.json b/plugins/fancyholograms-v2/release_deployment_config.json index 703c1947..ddd841e5 100644 --- a/plugins/fancyholograms-v2/release_deployment_config.json +++ b/plugins/fancyholograms-v2/release_deployment_config.json @@ -1,34 +1,36 @@ { "project_name": "FancyHolograms", - "project_id": "5QNgOj66", - "plugin_jar_path": "../../../../plugins/fancyholograms-v2/build/libs/FancyHolograms-%VERSION%.jar", - "changelog_path": "../../../../plugins/fancyholograms-v2/CHANGELOG.md", - "version_path": "../../../../plugins/fancyholograms-v2/VERSION", - "supported_versions": [ - "1.20", - "1.20.1", - "1.20.2", - "1.20.3", - "1.20.4", - "1.20.5", - "1.20.6", - "1.21", - "1.21.1", - "1.21.2", - "1.21.3", - "1.21.4", - "1.21.5", - "1.21.6", - "1.21.7", - "1.21.8", - "1.21.9", - "1.21.10", - "1.21.11" - ], - "channel": "RELEASE", - "loaders": [ - "paper", - "folia" - ], - "featured": true + "plugin_jar_path": "/plugins/fancyholograms-v2/build/libs/FancyHolograms-%VERSION%.jar", + "changelog_path": "/plugins/fancyholograms-v2/CHANGELOG.md", + "version_path": "/plugins/fancyholograms-v2/VERSION", + "modrinth": { + "project_id": "5QNgOj66", + "supported_versions": [ + "1.20", + "1.20.1", + "1.20.2", + "1.20.3", + "1.20.4", + "1.20.5", + "1.20.6", + "1.21", + "1.21.1", + "1.21.2", + "1.21.3", + "1.21.4", + "1.21.5", + "1.21.6", + "1.21.7", + "1.21.8", + "1.21.9", + "1.21.10", + "1.21.11" + ], + "channel": "release", + "loaders": [ + "paper", + "folia" + ], + "featured": true + } } \ No newline at end of file diff --git a/plugins/fancyholograms-v2/snapshot_deployment_config.json b/plugins/fancyholograms-v2/snapshot_deployment_config.json index f2ecbc03..6867a12c 100644 --- a/plugins/fancyholograms-v2/snapshot_deployment_config.json +++ b/plugins/fancyholograms-v2/snapshot_deployment_config.json @@ -1,34 +1,36 @@ { "project_name": "FancyHolograms", - "project_id": "5QNgOj66", - "plugin_jar_path": "../../../../plugins/fancyholograms-v2/build/libs/FancyHolograms-%VERSION%.jar", - "changelog_path": "../../../../plugins/fancyholograms-v2/CHANGELOG-SNAPSHOT.md", - "version_path": "../../../../plugins/fancyholograms-v2/VERSION", - "supported_versions": [ - "1.20", - "1.20.1", - "1.20.2", - "1.20.3", - "1.20.4", - "1.20.5", - "1.20.6", - "1.21", - "1.21.1", - "1.21.2", - "1.21.3", - "1.21.4", - "1.21.5", - "1.21.6", - "1.21.7", - "1.21.8", - "1.21.9", - "1.21.10", - "1.21.11-pre4" - ], - "channel": "BETA", - "loaders": [ - "paper", - "folia" - ], - "featured": false + "plugin_jar_path": "/plugins/fancyholograms-v2/build/libs/FancyHolograms-%VERSION%.jar", + "changelog_path": "/plugins/fancyholograms-v2/CHANGELOG-SNAPSHOT.md", + "version_path": "/plugins/fancyholograms-v2/VERSION", + "modrinth": { + "project_id": "5QNgOj66", + "supported_versions": [ + "1.20", + "1.20.1", + "1.20.2", + "1.20.3", + "1.20.4", + "1.20.5", + "1.20.6", + "1.21", + "1.21.1", + "1.21.2", + "1.21.3", + "1.21.4", + "1.21.5", + "1.21.6", + "1.21.7", + "1.21.8", + "1.21.9", + "1.21.10", + "1.21.11-pre4" + ], + "channel": "beta", + "loaders": [ + "paper", + "folia" + ], + "featured": false + } } \ No newline at end of file diff --git a/plugins/fancyholograms/release_deployment_config.json b/plugins/fancyholograms/release_deployment_config.json index ff692ec7..0e5bc53e 100644 --- a/plugins/fancyholograms/release_deployment_config.json +++ b/plugins/fancyholograms/release_deployment_config.json @@ -1,30 +1,31 @@ { "project_name": "FancyHolograms", - "project_id": "5QNgOj66", - "plugin_jar_path": "../../../../plugins/fancyholograms/build/libs/FancyHolograms-%VERSION%.jar", - "changelog_path": "../../../../plugins/fancyholograms/CHANGELOG.md", - "version_path": "../../../../plugins/fancyholograms/VERSION", - "supported_versions": [ - "1.20.5", - "1.20.6", - "1.21", - "1.21.1", - "1.21.2", - "1.21.3", - "1.21.4", - "1.21.5", - "1.21.6", - "1.21.7", - "1.21.8", - "1.21.9", - "1.21.10", - "1.21.11", - "1.21.11" - ], - "channel": "RELEASE", - "loaders": [ - "paper", - "folia" - ], - "featured": true + "plugin_jar_path": "/plugins/fancyholograms/build/libs/FancyHolograms-%VERSION%.jar", + "changelog_path": "/plugins/fancyholograms/CHANGELOG.md", + "version_path": "/plugins/fancyholograms/VERSION", + "modrinth": { + "project_id": "5QNgOj66", + "supported_versions": [ + "1.20.5", + "1.20.6", + "1.21", + "1.21.1", + "1.21.2", + "1.21.3", + "1.21.4", + "1.21.5", + "1.21.6", + "1.21.7", + "1.21.8", + "1.21.9", + "1.21.10", + "1.21.11" + ], + "channel": "release", + "loaders": [ + "paper", + "folia" + ], + "featured": true + } } \ No newline at end of file diff --git a/plugins/fancyholograms/snapshot_deployment_config.json b/plugins/fancyholograms/snapshot_deployment_config.json index 253fb841..36f7a0a4 100644 --- a/plugins/fancyholograms/snapshot_deployment_config.json +++ b/plugins/fancyholograms/snapshot_deployment_config.json @@ -1,29 +1,31 @@ { "project_name": "FancyHolograms", - "project_id": "5QNgOj66", - "plugin_jar_path": "../../../../plugins/fancyholograms/build/libs/FancyHolograms-%VERSION%.jar", - "changelog_path": "../../../../plugins/fancyholograms/CHANGELOG-SNAPSHOT.md", - "version_path": "../../../../plugins/fancyholograms/VERSION", - "supported_versions": [ - "1.20.5", - "1.20.6", - "1.21", - "1.21.1", - "1.21.2", - "1.21.3", - "1.21.4", - "1.21.5", - "1.21.6", - "1.21.7", - "1.21.8", - "1.21.9", - "1.21.10", - "1.21.11-pre4" - ], - "channel": "ALPHA", - "loaders": [ - "paper", - "folia" - ], - "featured": false + "plugin_jar_path": "/plugins/fancyholograms/build/libs/FancyHolograms-%VERSION%.jar", + "changelog_path": "/plugins/fancyholograms/CHANGELOG-SNAPSHOT.md", + "version_path": "/plugins/fancyholograms/VERSION", + "modrinth": { + "project_id": "5QNgOj66", + "supported_versions": [ + "1.20.5", + "1.20.6", + "1.21", + "1.21.1", + "1.21.2", + "1.21.3", + "1.21.4", + "1.21.5", + "1.21.6", + "1.21.7", + "1.21.8", + "1.21.9", + "1.21.10", + "1.21.11-pre4" + ], + "channel": "alpha", + "loaders": [ + "paper", + "folia" + ], + "featured": false + } } \ No newline at end of file diff --git a/plugins/fancynpcs/release_deployment_config.json b/plugins/fancynpcs/release_deployment_config.json index 710feea2..dee7c4ee 100644 --- a/plugins/fancynpcs/release_deployment_config.json +++ b/plugins/fancynpcs/release_deployment_config.json @@ -1,34 +1,36 @@ { "project_name": "FancyNpcs", - "project_id": "EeyAn23L", - "plugin_jar_path": "../../../../plugins/fancynpcs/build/libs/FancyNpcs-%VERSION%.jar", - "changelog_path": "../../../../plugins/fancynpcs/CHANGELOG.md", - "version_path": "../../../../plugins/fancynpcs/VERSION", - "supported_versions": [ - "1.20", - "1.20.1", - "1.20.2", - "1.20.3", - "1.20.4", - "1.20.5", - "1.20.6", - "1.21", - "1.21.1", - "1.21.2", - "1.21.3", - "1.21.4", - "1.21.5", - "1.21.6", - "1.21.7", - "1.21.8", - "1.21.9", - "1.21.10", - "1.21.11" - ], - "channel": "RELEASE", - "loaders": [ - "paper", - "folia" - ], - "featured": true + "plugin_jar_path": "/plugins/fancynpcs/build/libs/FancyNpcs-%VERSION%.jar", + "changelog_path": "/plugins/fancynpcs/CHANGELOG.md", + "version_path": "/plugins/fancynpcs/VERSION", + "modrinth": { + "project_id": "EeyAn23L", + "supported_versions": [ + "1.20", + "1.20.1", + "1.20.2", + "1.20.3", + "1.20.4", + "1.20.5", + "1.20.6", + "1.21", + "1.21.1", + "1.21.2", + "1.21.3", + "1.21.4", + "1.21.5", + "1.21.6", + "1.21.7", + "1.21.8", + "1.21.9", + "1.21.10", + "1.21.11" + ], + "channel": "release", + "loaders": [ + "paper", + "folia" + ], + "featured": true + } } \ No newline at end of file diff --git a/plugins/fancynpcs/snapshot_deployment_config.json b/plugins/fancynpcs/snapshot_deployment_config.json index ef5b4aa3..f183eba8 100644 --- a/plugins/fancynpcs/snapshot_deployment_config.json +++ b/plugins/fancynpcs/snapshot_deployment_config.json @@ -1,34 +1,36 @@ { "project_name": "FancyNpcs", - "project_id": "EeyAn23L", - "plugin_jar_path": "../../../../plugins/fancynpcs/build/libs/FancyNpcs-%VERSION%.jar", - "changelog_path": "../../../../plugins/fancynpcs/CHANGELOG-SNAPSHOT.md", - "version_path": "../../../../plugins/fancynpcs/VERSION", - "supported_versions": [ - "1.20", - "1.20.1", - "1.20.2", - "1.20.3", - "1.20.4", - "1.20.5", - "1.20.6", - "1.21", - "1.21.1", - "1.21.2", - "1.21.3", - "1.21.4", - "1.21.5", - "1.21.6", - "1.21.7", - "1.21.8", - "1.21.9", - "1.21.10", - "1.21.11-pre4" - ], - "channel": "BETA", - "loaders": [ - "paper", - "folia" - ], - "featured": false + "plugin_jar_path": "/plugins/fancynpcs/build/libs/FancyNpcs-%VERSION%.jar", + "changelog_path": "/plugins/fancynpcs/CHANGELOG-SNAPSHOT.md", + "version_path": "/plugins/fancynpcs/VERSION", + "modrinth": { + "project_id": "EeyAn23L", + "supported_versions": [ + "1.20", + "1.20.1", + "1.20.2", + "1.20.3", + "1.20.4", + "1.20.5", + "1.20.6", + "1.21", + "1.21.1", + "1.21.2", + "1.21.3", + "1.21.4", + "1.21.5", + "1.21.6", + "1.21.7", + "1.21.8", + "1.21.9", + "1.21.10", + "1.21.11-pre4" + ], + "channel": "beta", + "loaders": [ + "paper", + "folia" + ], + "featured": false + } } \ No newline at end of file diff --git a/settings.gradle.kts b/settings.gradle.kts index 5a9d0072..b5137171 100644 --- a/settings.gradle.kts +++ b/settings.gradle.kts @@ -48,7 +48,6 @@ include(":libraries:packets:implementations:1_21_9") include(":libraries:packets:implementations:1_21_11") -include(":tools:deployment") include(":tools:quick-e2e") pluginManagement { diff --git a/tools/deployment/build.gradle.kts b/tools/deployment/build.gradle.kts deleted file mode 100644 index be7db50b..00000000 --- a/tools/deployment/build.gradle.kts +++ /dev/null @@ -1,61 +0,0 @@ -plugins { - id("java") - id("maven-publish") - id("com.gradleup.shadow") -} - -group = "de.oliver" -description = "Tool to deploy Minecraft plugins" - -java { - toolchain.languageVersion.set(JavaLanguageVersion.of(21)) -} - -repositories { - mavenCentral() - maven("https://repo.papermc.io/repository/maven-public/") - maven("https://repo.fancyinnovations.com/releases") -} - -dependencies { - implementation("dev.masecla:Modrinth4J:2.2.0") - - implementation("com.google.code.gson:gson:2.13.1") - implementation("com.squareup.okhttp3:okhttp:4.12.0") - implementation("org.jetbrains:annotations:26.0.2") - - implementation("de.oliver.FancyAnalytics:java-sdk:0.0.5") - implementation("de.oliver.FancyAnalytics:logger:0.0.8") -} - -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 - } -} diff --git a/tools/deployment/example-config.json b/tools/deployment/example-config.json deleted file mode 100644 index 0d2da379..00000000 --- a/tools/deployment/example-config.json +++ /dev/null @@ -1,28 +0,0 @@ -{ - "project_name": "FancyHolograms", - "project_id": "fancyholograms", - "plugin_jar_path": "../../../plugins/fancyholograms/build/libs/FancyHolograms-*.jar", - "changelog_path": "../../../plugins/fancyholograms/CHANGELOG.md", - "version": "3.0.0", - "supported_versions":[ - "1.19.4", - "1.20", - "1.20.1", - "1.20.2", - "1.20.3", - "1.20.4", - "1.20.5", - "1.20.6", - "1.21", - "1.21.1", - "1.21.2", - "1.21.3", - "1.21.4" - ], - "channel": "release", - "loaders": [ - "paper", - "folia" - ], - "featured": true -} \ No newline at end of file diff --git a/tools/deployment/src/main/java/de/oliver/deployment/Configuration.java b/tools/deployment/src/main/java/de/oliver/deployment/Configuration.java deleted file mode 100644 index 9cf7672f..00000000 --- a/tools/deployment/src/main/java/de/oliver/deployment/Configuration.java +++ /dev/null @@ -1,29 +0,0 @@ -package de.oliver.deployment; - -import com.google.gson.annotations.SerializedName; - -import java.io.IOException; -import java.nio.file.Files; -import java.nio.file.Path; - -public record Configuration( - @SerializedName("project_name") String projectName, - @SerializedName("project_id") String projectID, - @SerializedName("plugin_jar_path") String pluginJarPath, - @SerializedName("changelog_path") String changeLogPath, - @SerializedName("version_path") String versionPath, - @SerializedName("supported_versions") String[] supportedVersions, - String channel, - @SerializedName("loaders") String[] loaders, - boolean featured -) { - - public String readVersion() { - try { - return Files.readString(Path.of(versionPath)); - } catch (IOException e) { - return "unknown"; - } - } - -} diff --git a/tools/deployment/src/main/java/de/oliver/deployment/Main.java b/tools/deployment/src/main/java/de/oliver/deployment/Main.java deleted file mode 100644 index 71318f8b..00000000 --- a/tools/deployment/src/main/java/de/oliver/deployment/Main.java +++ /dev/null @@ -1,81 +0,0 @@ -package de.oliver.deployment; - -import com.google.gson.Gson; -import de.oliver.deployment.git.GitService; -import de.oliver.deployment.modrinth.ModrinthService; -import de.oliver.deployment.notification.DiscordWebhook; - -import java.io.IOException; -import java.nio.file.Files; -import java.nio.file.Path; -import java.util.List; - -public class Main { - - private static final Gson GSON = new Gson(); - - public static void main(String[] args) throws IOException { - if (args.length < 2) { - System.err.println("Usage: java -jar deployment.jar [send_notification]"); - System.exit(1); - } - - String platform = args[0]; - - String configFilePath = args[1]; - String configData = Files.readString(Path.of(configFilePath)); - Configuration configuration = GSON.fromJson(configData, Configuration.class); - - boolean sendNotification = args.length > 2 && Boolean.parseBoolean(args[2]); - - if (platform.equalsIgnoreCase("modrinth")) { - deployToModrinth(configuration); - } - - if (sendNotification) { - sendDiscordNotification(configuration); - System.out.println("Deployment completed and notification sent."); - } else { - System.out.println("Deployment completed without sending notification."); - } - } - - private static void deployToModrinth(Configuration configuration) { - String modrinthApiKey = System.getenv("MODRINTH_API_KEY"); - ModrinthService modrinthService = new ModrinthService(modrinthApiKey); - try { - modrinthService.deployPlugin(configuration); - } catch (IOException e) { - e.printStackTrace(); - } - } - - private static void sendDiscordNotification(Configuration configuration) { - String discordWebhookUrl = System.getenv("DISCORD_WEBHOOK_URL"); - if (discordWebhookUrl != null) { - DiscordWebhook.Data data = new DiscordWebhook.Data("Deployment completed", List.of( - new DiscordWebhook.Data.Embed( - "New version of " + configuration.projectName(), - """ - **Version:** %s - **Channel:** %s - **Commit:** [%s](https://github.com/FancyMcPlugins/fancyplugins/commit/%s) - **Download:** %s - """.formatted( - configuration.readVersion(), - configuration.channel(), - GitService.getCommitHash().substring(0, 7), - GitService.getCommitHash(), - "https://modrinth.com/plugin/" + configuration.projectName() + "/version/" + configuration.readVersion()), - - 0x00FF00 - ) - )); - DiscordWebhook discordWebhook = new DiscordWebhook(); - discordWebhook.sendWebhook(discordWebhookUrl, data); - } else { - System.out.println("Discord webhook URL not set. Skipping notification."); - } - } - -} diff --git a/tools/deployment/src/main/java/de/oliver/deployment/git/GitService.java b/tools/deployment/src/main/java/de/oliver/deployment/git/GitService.java deleted file mode 100644 index 4d65eb35..00000000 --- a/tools/deployment/src/main/java/de/oliver/deployment/git/GitService.java +++ /dev/null @@ -1,37 +0,0 @@ -package de.oliver.deployment.git; - -import java.io.IOException; - -public class GitService { - - public static String getCommitHash() { - ProcessBuilder processBuilder = new ProcessBuilder("git", "rev-parse", "HEAD"); - processBuilder.redirectErrorStream(true); - processBuilder.directory(new java.io.File(".")); - - try { - Process process = processBuilder.start(); - return new String(process.getInputStream().readAllBytes()).trim(); - } catch (IOException e) { - e.printStackTrace(); - } - - return "unknown"; - } - - public static String getCommitMessage() { - ProcessBuilder processBuilder = new ProcessBuilder("git", "log", "-1", "--pretty=%B"); - processBuilder.redirectErrorStream(true); - processBuilder.directory(new java.io.File(".")); - - try { - Process process = processBuilder.start(); - return new String(process.getInputStream().readAllBytes()).trim(); - } catch (IOException e) { - e.printStackTrace(); - } - - return "unknown"; - } - -} diff --git a/tools/deployment/src/main/java/de/oliver/deployment/modrinth/ModrinthService.java b/tools/deployment/src/main/java/de/oliver/deployment/modrinth/ModrinthService.java deleted file mode 100644 index 71e69f2b..00000000 --- a/tools/deployment/src/main/java/de/oliver/deployment/modrinth/ModrinthService.java +++ /dev/null @@ -1,68 +0,0 @@ -package de.oliver.deployment.modrinth; - -import de.oliver.deployment.Configuration; -import de.oliver.deployment.git.GitService; -import masecla.modrinth4j.client.agent.UserAgent; -import masecla.modrinth4j.endpoints.version.CreateVersion; -import masecla.modrinth4j.main.ModrinthAPI; -import masecla.modrinth4j.model.version.ProjectVersion; - -import java.io.File; -import java.io.IOException; -import java.io.InputStream; -import java.nio.file.Files; -import java.nio.file.Path; -import java.util.ArrayList; -import java.util.Arrays; -import java.util.List; -import java.util.concurrent.CompletableFuture; - -public class ModrinthService { - - private final ModrinthAPI api; - - public ModrinthService(String apiKey) { - this.api = ModrinthAPI.rateLimited( - UserAgent.builder() - .authorUsername("Oliver") - .contact("oliver@fancyinnovations.com") - .build(), - apiKey - ); - } - - public void deployPlugin(Configuration config) throws IOException { - String changelog = Files.readString(Path.of(config.changeLogPath())); - changelog = changelog.replaceAll("%COMMIT_HASH%", GitService.getCommitHash()); - changelog = changelog.replaceAll("%COMMIT_MESSAGE%", GitService.getCommitMessage()); - - String version = config.readVersion(); - - String pluginJarPath = config.pluginJarPath().replace("%VERSION%", version); - File pluginFile = new File(pluginJarPath); - - InputStream pluginJarFileStream = Files.newInputStream(pluginFile.toPath()); - - CreateVersion.CreateVersionRequest request = new CreateVersion.CreateVersionRequest( - version, - version, - changelog, - new ArrayList<>(), - Arrays.asList(config.supportedVersions()), - ProjectVersion.VersionType.valueOf(config.channel()), - Arrays.asList(config.loaders()), - config.featured(), - config.projectID(), - pluginJarPath, - List.of(pluginFile.getName()), - List.of(pluginJarFileStream) - ); - - System.out.println("Creating version: " + request); - - CompletableFuture resp = api.versions().createProjectVersion(request); - ProjectVersion createdVersion = resp.join(); - - System.out.println("Version created: " + createdVersion); - } -} \ No newline at end of file diff --git a/tools/deployment/src/main/java/de/oliver/deployment/notification/DiscordWebhook.java b/tools/deployment/src/main/java/de/oliver/deployment/notification/DiscordWebhook.java deleted file mode 100644 index 4921505f..00000000 --- a/tools/deployment/src/main/java/de/oliver/deployment/notification/DiscordWebhook.java +++ /dev/null @@ -1,35 +0,0 @@ -package de.oliver.deployment.notification; - -import de.oliver.fancyanalytics.sdk.utils.HttpRequest; - -import java.io.IOException; -import java.net.URISyntaxException; -import java.net.http.HttpResponse; -import java.util.List; - -public class DiscordWebhook { - - public void sendWebhook(String webhookUrl, Data data) { - HttpRequest request = new HttpRequest(webhookUrl) - .withMethod("POST") - .withHeader("Content-Type", "application/json") - .withBody(data); - - try { - HttpResponse resp = request.send(); - if (resp.statusCode() != 204) { - System.out.println("Failed to send message with discord webhook: " + resp.body()); - } - } catch (URISyntaxException | IOException | InterruptedException e) { - System.out.println("Failed to send webhook"); - e.printStackTrace(); - } - } - - public record Data(String content, List embeds) { - - public record Embed(String title, String description, int color) { - } - } - -}