name: Build on: workflow_dispatch: push: branches-ignore: - 'gh-readonly-queue/**' paths-ignore: - '.github/ISSUE_TEMPLATE/*.yml' - '.github/workflows/build-remote.yml' - '.github/workflows/preview.yml' - '.github/workflows/pull-request.yml' - '.idea/copyright/*.xml' - '.gitignore' - 'CONTRIBUTING.md' - 'LICENSE' - 'Jenkinsfile ' - 'README.md' - 'licenseheader.txt' jobs: build: runs-on: ubuntu-latest steps: - name: Get Release Info id: release-info uses: GeyserMC/actions/previous-release@master with: data: ${{ vars.RELEASEACTION_PREVRELEASE }} - name: Setup Gradle uses: GeyserMC/actions/setup-gradle-composite@master with: setup-java_java-version: 21 - name: Build Geyser run: ./gradlew build env: BUILD_NUMBER: ${{ steps.release-info.outputs.curentRelease }} - name: Archive Artifacts uses: GeyserMC/actions/upload-multi-artifact@master if: success() with: artifacts: | bootstrap/mod/fabric/build/libs/Geyser-Fabric.jar bootstrap/mod/neoforge/build/libs/Geyser-NeoForge.jar bootstrap/standalone/build/libs/Geyser-Standalone.jar bootstrap/spigot/build/libs/Geyser-Spigot.jar bootstrap/bungeecord/build/libs/Geyser-BungeeCord.jar bootstrap/velocity/build/libs/Geyser-Velocity.jar bootstrap/viaproxy/build/libs/Geyser-ViaProxy.jar - name: Publish to Maven Repository if: ${{ success() && github.repository == 'GeyserMC/Geyser' && github.ref_name == 'master' }} run: ./gradlew publish env: BUILD_NUMBER: ${{ steps.release-info.outputs.curentRelease }} ORG_GRADLE_PROJECT_geysermcUsername: ${{ vars.DEPLOY_USER }} ORG_GRADLE_PROJECT_geysermcPassword: ${{ secrets.DEPLOY_PASS }} - name: Get Version if: ${{ (success() || failure()) && github.repository == 'GeyserMC/Geyser' }} id: get-version run: | version=$(cat gradle.properties | grep -o "version=[0-9\\.]*" | cut -d"=" -f2) echo "VERSION=${version}" >> $GITHUB_OUTPUT - name: Get Release Metadata if: ${{ (success() || failure()) && github.repository == 'GeyserMC/Geyser' }} uses: GeyserMC/actions/release@master id: metadata with: appID: ${{ secrets.RELEASE_APP_ID }} appPrivateKey: ${{ secrets.RELEASE_APP_PK }} files: | bungeecord:bootstrap/bungeecord/build/libs/Geyser-BungeeCord.jar fabric:bootstrap/mod/fabric/build/libs/Geyser-Fabric.jar neoforge:bootstrap/mod/neoforge/build/libs/Geyser-NeoForge.jar spigot:bootstrap/spigot/build/libs/Geyser-Spigot.jar standalone:bootstrap/standalone/build/libs/Geyser-Standalone.jar velocity:bootstrap/velocity/build/libs/Geyser-Velocity.jar viaproxy:bootstrap/viaproxy/build/libs/Geyser-ViaProxy.jar releaseEnabled: false saveMetadata: true releaseProject: 'geyser' releaseVersion: ${{ steps.get-version.outputs.VERSION }} - name: Publish to Downloads API if: ${{ success() && github.repository == 'GeyserMC/Geyser' && github.ref_name == 'master' }} uses: GeyserMC/actions/upload-release@master with: username: ${{ vars.DOWNLOADS_USERNAME }} privateKey: ${{ secrets.DOWNLOADS_PRIVATE_KEY }} host: ${{ secrets.DOWNLOADS_SERVER_IP }} files: | bootstrap/bungeecord/build/libs/Geyser-BungeeCord.jar bootstrap/mod/fabric/build/libs/Geyser-Fabric.jar bootstrap/mod/neoforge/build/libs/Geyser-NeoForge.jar bootstrap/spigot/build/libs/Geyser-Spigot.jar bootstrap/standalone/build/libs/Geyser-Standalone.jar bootstrap/velocity/build/libs/Geyser-Velocity.jar bootstrap/viaproxy/build/libs/Geyser-ViaProxy.jar changelog: ${{ steps.metadata.outputs.body }} - name: Publish to Modrinth (Fabric) if: ${{ success() && github.repository == 'GeyserMC/Geyser' && github.ref_name == 'master' }} env: BUILD_NUMBER: ${{ steps.release-info.outputs.curentRelease }} MODRINTH_TOKEN: ${{ secrets.MODRINTH_TOKEN }} run: ./gradlew fabric:modrinth - name: Publish to Modrinth (NeoForge) if: ${{ success() && github.repository == 'GeyserMC/Geyser' && github.ref_name == 'master' }} env: BUILD_NUMBER: ${{ steps.release-info.outputs.curentRelease }} MODRINTH_TOKEN: ${{ secrets.MODRINTH_TOKEN }} run: ./gradlew neoforge:modrinth - name: Notify Discord if: ${{ (success() || failure()) && github.repository == 'GeyserMC/Geyser' }} uses: GeyserMC/actions/notify-discord@master with: discordWebhook: ${{ secrets.DISCORD_WEBHOOK }} status: ${{ job.status }} body: ${{ steps.metadata.outputs.body }}