Skip to content

Publish Project

Publish Project #60

Workflow file for this run

# Publishes built jars to distribution platforms
name: Publish
on:
workflow_dispatch:
inputs:
version:
description: 'Mod version'
required: true
release_type:
description: 'Release type'
type: choice
default: 'beta'
options:
- 'release'
- 'beta'
- 'alpha'
env:
# Version of the mod
FULL_VERSION: "${{ github.event.inputs.version }}-${{ github.event.inputs.release_type }}"
# type of release
NAME: "GTExpertCore"
jobs:
build:
runs-on: ubuntu-latest
steps:
- name: Checkout Repository
uses: actions/checkout@v4
- name: Check if tag already exists
run: |
if git rev-parse --verify --quiet "v${{ github.event.inputs.version }}"; then
echo "Version ${{ github.event.inputs.version }} already exists, aborting workflow."
exit 1
fi
- name: Set version
run: sed -i "s/modVersion.*=.*/modVersion = ${{ env.FULL_VERSION }}/g" gradle.properties
- name: Commit and push gradle.properties
uses: stefanzweifel/git-auto-commit-action@v5
with:
commit_message: "Bump version to v${{ env.FULL_VERSION }}"
commit_options: '--no-verify'
file_pattern: gradle.properties
tagging_message: "v${{ env.FULL_VERSION }}"
- name: Validate gradle wrapper checksum
uses: gradle/wrapper-validation-action@v1
- name: Setup Java
uses: actions/setup-java@v3
with:
cache: gradle
distribution: 'zulu'
java-version: |
8
17
- name: Apply patch to settings.gradle
run: |
if [ -f settings.gradle.patch ]; then
patch -p0 < settings.gradle.patch
fi
- name: Setup Gradle
uses: gradle/gradle-build-action@v2
- name: Grant execute permission for gradlew
run: chmod +x gradlew
- name: Build Project
run: ./gradlew --scan --build-cache --info --stacktrace build
- name: Publish to Curseforge and Modrinth
uses: Kir-Antipov/[email protected]
with:
github-tag: "v${{ env.FULL_VERSION }}"
github-generate-changelog: true
github-draft: false
github-prerelease: false
github-token: ${{ secrets.GITHUB_TOKEN }}
modrinth-id: 'ipueNiWG'
modrinth-token: "${{ secrets.MODRINTH_API_KEY }}"
modrinth-dependencies: |
G1ckZuWK(required)
tULldUx4(required)
tZiutdLG(required)
curseforge-id: '851103'
curseforge-token: "${{ secrets.CURSEFORGE_API_KEY }}"
curseforge-dependencies: |
mixin-booter(required)
gregtech-ce-unofficial(required)
gregicality-multiblocks(required)
ae2-extended-life(recommended)
ae-additions-extra-cells-2-fork(recommended)
ender-io-base(recommended)
ender-io-machines(recommended)
ender-io-endergy(recommended)
ender-io-conduits(recommended)
ender-io-ae2-conduits(recommended)
gregtech-food-option(recommended)
chisel(recommended)
extracpus(recommended)
draconic-evolution(recommended)
draconicadditions(recommended)
project-red-illumination(recommended)
ulv-covers(incompatible)
files: |
build/libs/!(*-@(dev|sources|javadoc)).jar
build/libs/*-@(sources).jar
build/libs/*-@(dev).jar
name: "${{ env.NAME }}-${{ env.FULL_VERSION }}.jar"
changelog: "Changelog is available [here](https://github.com/${{github.repository}}/blob/master/CHANGELOG.md)"
version: "${{ github.event.inputs.version }}"
version-type: "${{ github.event.inputs.release_type }}"
loaders: |
forge
game-versions: |
1.12.2
java: |
8
retry-attempts: 2