Der GitHub-Runner braucht die folgenden Dateien: „gradlew“, „gradlew.bat“ und die „.jar“-Dateien im Ordner: „gradle/wrapper/“.
Wir gehen davon aus, dass „settings.gradle“, „build.gradle“ also das Gradle-Projekt (z.B.: via „gradle init“) schon erstellt wurde.
Auch müssen wir, falls vorhanden, die „.gitignore“ anpassen.
Der Ablauf der Action passiert in dieser Datei: „.github/workflows/gradle-publish.yml“
Es gibt von mir auch ein GitHub Vorlagen Repository.
gradles(.bat) & gradle/wrapper/
gradle wrapper
.gitignore
# Package Files
!gradle/wrapper/*.jar
# Ignore files that store secrets
gradle.propertiesCode-Sprache: PHP (php)
settings.gradle
rootProject.name = 'NAME'Code-Sprache: JavaScript (javascript)
gradle.properties (für lokales Hochladen benötigt)
MAVEN_USERNAME=USERNAME
MAVEN_PASSWORD=PASSWORD
build.gradle
„project.findProperty“ greift auf die „gradle.properties“ zu und „System.getenv“ auf die Umgebungsvariablen.
Die „GITHUB_*“-Variablen werden automatisch gesetzt, die „MAVEN_*“ müssen per Hand gesetzt werden.
Das geht auf dem GitHub-Actions-Runner lokal, für eine Organisation oder pro Repository.
plugins {
id 'maven-publish'
}
publishing {
repositories {
maven {
name = "GitHubPackages"
url = "https://maven.pkg.github.com/" + System.getenv("GITHUB_REPOSITORY")
credentials {
username = System.getenv("GITHUB_ACTOR")
password = System.getenv("GITHUB_TOKEN")
}
}
maven {
name = "SERVERNAME_REPOSITORYNAME"
url = uri("https://url.de")
credentials {
username = project.findProperty("MAVEN_USERNAME") ?: System.getenv("MAVEN_USERNAME")
password = project.findProperty("MAVEN_PASSWORD") ?: System.getenv("MAVEN_PASSWORD")
}
}
}
publications {
gpr(MavenPublication) {
from(components.java)
}
}
}Code-Sprache: Gradle (gradle)
.github/workflows/gradle-publish.yml (Getestet für Minecraft-Serverversion: 26.1.2)
Die Versionen (Java, actions/*) müssen ggf. angepasst werden.
name: Gradle Package
on:
push:
tags:
- v**
- dev**
jobs:
build:
runs-on: self-hosted
permissions:
contents: read
packages: write
steps:
- uses: actions/checkout@v6
- name: Set up JDK 25
uses: actions/setup-java@v5
with:
java-version: "25"
distribution: "temurin"
server-id: github # Value of the distributionManagement/repository/id field of the pom.xml
settings-path: ${{ github.workspace }} # location for the settings.xml file
- name: Setup Gradle
uses: gradle/actions/setup-gradle@v6
- name: Build with Gradle
run: ./gradlew build
- name: Publish to GitHub Packages and to the Maven server
run: ./gradlew publish
env:
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
MAVEN_URL: ${{ secrets.MAVEN_URL }}
MAVEN_USERNAME: ${{ secrets.MAVEN_USERNAME }}
MAVEN_PASSWORD: ${{ secrets.MAVEN_PASSWORD }}Code-Sprache: YAML (yaml)
Dateien zu GitHub committen
git add .gitignore
git add gradlew
git add gradlew.bat
git add gradle/*
git commit -m "generate gradlew files and wrapper"
git update-index --chmod=+x ./gradlew
git update-index --chmod=+x ./gradlew.bat
git commit -m "update gradlew permissions"Code-Sprache: Bash (bash)