Skip to content

Publish Release

Publish Release #89

Workflow file for this run

name: Publish Release
on:
workflow_dispatch:
inputs:
patch:
description: "Patch version"
required: true
type: string
release-type:
description: "Release Type"
required: true
type: choice
options:
- release
- alpha
- beta
- pre
- rc
default: release
build:
description: "Build"
required: true
type: string
default: "0"
jobs:
publish-release:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v3
with:
token: ${{ secrets.TEAM_RESOURCEFUL_BOT }}
- name: Set up Java
uses: actions/setup-java@v3
with:
distribution: 'zulu'
java-version: 21
- name: Cache Gradle packages
uses: actions/cache@v3
with:
path: ~/.gradle/caches
key: ${{ runner.os }}-gradle-${{ hashFiles('**/*.gradle') }}
restore-keys: ${{ runner.os }}-gradle
- name: Set Gradle Perms
run: chmod +x gradlew
- name: Update Mod Version
run: ./gradlew updateModVersion --patch=${{ inputs.patch }} --releaseType=${{ inputs.release-type }} --build=${{ inputs.build }}
- name: Get Mod Version
id: version
uses: christian-draeger/read-properties@1.1.1
with:
path: "./version.properties"
properties: "version"
- name: Get MC Version and Platforms
id: props
uses: christian-draeger/read-properties@1.1.1
with:
path: "./gradle.properties"
properties: "mc_version enabled_platforms"
- name: Publish package
run: ./gradlew publish --info
env:
MAVEN_USER: ${{ secrets.MAVEN_USERNAME }}
MAVEN_PASS: ${{ secrets.MAVEN_PASSWORD }}
- name: Update Changelog
uses: Team-Resourceful/ResourcefulChangelog@v0.0.1
with:
release_version: ${{ steps.version.outputs.version }}
github_token: ${{ secrets.TEAM_RESOURCEFUL_BOT }}
- name: Upload NeoForge Releases (Curse/Modrinth/Github)
id: forge_release
if: contains(steps.props.outputs.enabled_platforms, 'neoforge')
uses: Kir-Antipov/mc-publish@v3.3
with:
curseforge-id: ${{ vars.CURSE_ID }}
curseforge-token: ${{ secrets.CURSE_API_KEY }}
modrinth-id: ${{ vars.MODRINTH_ID }}
modrinth-token: ${{ secrets.MODRINTH_API_KEY }}
github-tag: "v${{ steps.version.outputs.version }}"
github-token: ${{ secrets.TEAM_RESOURCEFUL_BOT }}
files: ./neoforge/build/libs/!(*-@(dev|sources|dev-shadow)).jar
name: "[NeoForge] Resourceful Lib ${{ steps.version.outputs.version }}"
version: ${{ steps.version.outputs.version }}
changelog-file: changelog.md
loaders: neoforge
game-versions: ${{ steps.props.outputs.mc_version }}
version-resolver: exact
- name: Upload Fabric Releases (Curse/Modrinth/Github)
id: fabric_release
if: contains(steps.props.outputs.enabled_platforms, 'fabric')
uses: Kir-Antipov/mc-publish@v3.3
with:
curseforge-id: ${{ vars.CURSE_ID }}
curseforge-token: ${{ secrets.CURSE_API_KEY }}
modrinth-id: ${{ vars.MODRINTH_ID }}
modrinth-token: ${{ secrets.MODRINTH_API_KEY }}
github-tag: "v${{ steps.version.outputs.version }}"
github-token: ${{ secrets.TEAM_RESOURCEFUL_BOT }}
files: ./fabric/build/libs/!(*-@(dev|sources|dev-shadow)).jar
name: "[Fabric] Resourceful Lib ${{ steps.version.outputs.version }}"
version: ${{ steps.version.outputs.version }}
changelog-file: changelog.md
loaders: fabric
game-versions: ${{ steps.props.outputs.mc_version }}
version-resolver: exact
- name: Update Readme
run: |
./gradlew injectReadme
mv -f ./build/README.md .
- name: Create Discord Embed
run: ./gradlew injectDiscordEmbed
env:
FORGE_RELEASE_URL: ${{ steps.forge_release.outputs.modrinth-version }}
FABRIC_RELEASE_URL: ${{ steps.fabric_release.outputs.modrinth-version }}
- name: Send Discord Webhook
uses: tsickert/discord-webhook@v5.3.0
with:
webhook-url: ${{ secrets.DISCORD_RELEASE_WEBHOOK }}
raw-data: ./build/release_embed.json
- name: Commit Version Updates
run: |
git config --global user.name "TeamResourcefulBot"
git config --global user.email "teamresourcefulbot@users.noreply.github.com"
git diff-index --quiet HEAD || { git commit -am "Released v${{ steps.version.outputs.version }}"; git push; }