Skip to content

Publish Release

Publish Release #1

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
id: create_release
uses: actions/create-release@v1
env:
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
with:
tag_name: mc${{ env.MINECRAFT_VERSION }}-${{ env.MOD_VERSION }}
release_name: ${{ env.RELEASE_NAME }}
body_path: CHANGELOG.md
draft: false
prerelease: ${{ inputs.releaseType != 'stable' }}
- name: Upload assets to GitHub
uses: AButler/[email protected]
with:
files: 'build/libs/*.jar;!build/libs/*-dev.jar;LICENSE'
repo-token: ${{ secrets.GITHUB_TOKEN }}
release-id: ${{ steps.create_release.outputs.id }}
- 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