Skip to content

Publish Release

Publish Release #4

Workflow file for this run

name: Publish Release
on:
workflow_dispatch:
inputs:
releaseType:
type: choice
description: Release Type
options:
- stable
- beta
- alpha
jobs:
build:
runs-on: ubuntu-latest
steps:
- name: Checkout Repository
uses: actions/checkout@v4
- name: Setup Java
run: echo "JAVA_HOME=$JAVA_HOME_21_X64" >> "$GITHUB_ENV"
- name: Loom Cache
uses: actions/cache@v4
with:
path: "**/.gradle/loom-cache"
key: "${{ runner.os }}-gradle-loom-${{ hashFiles('**/*.gradle*', '**/gradle-wrapper.properties') }}"
restore-keys: "${{ runner.os }}-gradle-loom-"
- name: ModDevGradle Cache
uses: actions/cache@v4
with:
path: "**/.gradle/repositories"
key: "${{ runner.os }}-gradle-mdg-${{ hashFiles('**/*.gradle*', '**/gradle-wrapper.properties') }}"
restore-keys: "${{ runner.os }}-gradle-mdg-"
- name: Setup Gradle
uses: gradle/actions/setup-gradle@v4
with:
gradle-home-cache-cleanup: true
cache-read-only: true
- name: Validate Gradle Wrapper Integrity
uses: gradle/wrapper-validation-action@v2
- name: make gradle wrapper executable
run: chmod +x gradlew
- name: Gradle Release Build
env:
RELEASE_WORKFLOW: true
run: ./gradlew build
- name: Set environment variables
run: |
echo "MINECRAFT_VERSION=$(./gradlew -q printMinecraftVersion)" >> $GITHUB_ENV
echo "MOD_VERSION=$(./gradlew -q printModVersion)" >> $GITHUB_ENV
- name: Create GitHub Release
env:
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
run: |
gh release create mc${{ env.MINECRAFT_VERSION }}-${{ env.MOD_VERSION }} \
--title="${{ env.RELEASE_NAME }}" \
--notes-file=CHANGELOG.md \
--target=${{ github.ref_name }} \
--draft=false \
--prerelease=${{ inputs.releaseType != 'stable' }} \
build/libs/*.jar LICENSE
- name: Build & Publish
env:
RELEASE_TYPE: ${{ inputs.releaseType }}
MODRINTH_API_KEY: ${{ secrets.MODRINTH_API_KEY }}
CURSEFORGE_API_KEY: ${{ secrets.CURSEFORGE_API_KEY }}
run: ./gradlew publishMods