Helpful Links
CI Workflows
Java CI with Gradle – MC 1.20.4 and lower
name: Java CI with Gradle
on:
push:
pull_request:
concurrency:
group: "latest"
cancel-in-progress: true
jobs:
build:
runs-on: ubuntu-latest
permissions:
contents: write
steps:
- uses: actions/checkout@v4
- name: Set up JDK 17
uses: actions/setup-java@v4
with:
java-version: '17'
distribution: 'zulu'
java-package: 'jdk'
- name: Grant execute permission for gradlew
run: chmod +x gradlew
- name: Build
run: ./gradlew build
- name: Remove *-sources.jar
run: rm ./build/libs/*-sources.jar || true
- uses: "shxrklol/action-auto-releases-n20@v1.1"
with:
repo_token: ${{ secrets.GITHUB_TOKEN }}
automatic_release_tag: "latest"
prerelease: false
title: "Latest Build"
files: |
./build/libs/*.jar
Java CI with Gradle – MC 1.20.6-1.21
name: Java CI with Gradle
on: [ push,pull_request ]
concurrency:
group: "latest"
cancel-in-progress: true
jobs:
build:
runs-on: ubuntu-latest
permissions: write-all
steps:
- uses: actions/checkout@v4
- name: Set up JDK 21
uses: actions/setup-java@v4
with:
java-version: '21'
distribution: 'zulu'
java-package: 'jdk'
- name: Grant execute permission for gradlew
run: chmod +x gradlew
- name: Build
run: ./gradlew build
- name: Remove *-sources.jar
run: rm ./build/libs/*-sources.jar || true
- uses: "shxrklol/action-auto-releases-n20@v1.1"
with:
repo_token: "${{ secrets.GITHUB_TOKEN }}"
automatic_release_tag: "latest"
prerelease: false
title: "Latest Build"
files: |
./build/libs/*.jar
Java CI with Gradle – MC 1.21+
name: build
on: [pull_request, push]
jobs:
build:
strategy:
matrix:
# Use these Java versions
java: [
21, # Current Java LTS
]
runs-on: ubuntu-22.04
steps:
- name: checkout repository
uses: actions/checkout@v4
- name: validate gradle wrapper
uses: gradle/actions/wrapper-validation@v4
- name: setup jdk ${{ matrix.java }}
uses: actions/setup-java@v4
with:
java-version: ${{ matrix.java }}
distribution: 'microsoft'
- name: make gradle wrapper executable
run: chmod +x ./gradlew
- name: build
run: ./gradlew build
- name: remove *-sources.jar
run: rm -f ./build/libs/*-sources.jar || true
- name: capture build artifacts
if: ${{ matrix.java == '21' }} # Only upload artifacts built from latest java
uses: actions/upload-artifact@v4
with:
name: Artifacts
path: build/libs/
- name: create automatic release
if: ${{ github.event_name == 'push' && matrix.java == '21' }} # Only release on pushes, not PRs
uses: marvinpinto/action-automatic-releases@latest
with:
repo_token: "${{ secrets.GITHUB_TOKEN }}"
automatic_release_tag: "latest"
prerelease: false
title: "Latest Build (1.21.9-1.21.10)"
files: |
./build/libs/*.jar