Skip to content

Release

Release #242

Workflow file for this run

name: Release
on:
workflow_dispatch:
inputs:
fabric:
description: "Fabric Release"
required: true
type: boolean
forge:
description: "Forge Release"
required: true
type: boolean
neo:
description: "Neo Release"
required: true
type: boolean
baseRef:
description: "Base ref for changelog generator"
required: true
type: string
headRef:
description: "Head ref for changelog generator"
required: true
type: string
env:
MINECRAFT_VERSION: "1.21.3"
jobs:
build:
runs-on: ubuntu-latest
steps:
- name: Check out repository
uses: actions/checkout@v4
- name: Gradle Wrapper Verification
uses: gradle/actions/wrapper-validation@v4
- name: Set up JDK 21
uses: actions/setup-java@v4
with:
java-version: '21'
distribution: 'temurin'
- name: Elevate wrapper permissions
run: chmod +x ./gradlew
- name: Setup Gradle
uses: gradle/actions/setup-gradle@v4
- name: Build Mods
run: ./gradlew build
- name: Get WorldMap Version Fabric
run: echo "WORLDMAP_VERSION_FABRIC=$(./gradlew -q printWorldMapVersionFabric)" >> $GITHUB_ENV
- name: Get Minimap Version Fabric
run: echo "MINIMAP_VERSION_FABRIC=$(./gradlew -q printMinimapVersionFabric)" >> $GITHUB_ENV
- name: Get WorldMap Version Forge
run: echo "WORLDMAP_VERSION_FORGE=$(./gradlew -q printWorldMapVersionForge)" >> $GITHUB_ENV
- name: Get Minimap Version Forge
run: echo "MINIMAP_VERSION_FORGE=$(./gradlew -q printMinimapVersionForge)" >> $GITHUB_ENV
- name: Get WorldMap Version NeoForge
run: |
echo "WORLDMAP_VERSION_NEO=$(./gradlew -q printWorldMapVersionNeo)" >> $GITHUB_ENV
- name: Get Minimap Version NeoForge
run: |
echo "MINIMAP_VERSION_NEO=$(./gradlew -q printMinimapVersionNeo)" >> $GITHUB_ENV
- name: Get XaeroPlus Version
run: echo "XP_VERSION=$(./gradlew -q printXaeroPlusVersion)" >> $GITHUB_ENV
- name: Get Fabric Jar Filename
run: echo "XP_FABRIC=XaeroPlus-${{ env.XP_VERSION}}+fabric-${{ env.MINECRAFT_VERSION }}-WM${{ env.WORLDMAP_VERSION_FABRIC }}-MM${{ env.MINIMAP_VERSION_FABRIC }}" >> $GITHUB_ENV
- name: Get Forge Jar Filename
run: echo "XP_FORGE=XaeroPlus-${{ env.XP_VERSION}}+forge-${{ env.MINECRAFT_VERSION }}-WM${{ env.WORLDMAP_VERSION_FORGE }}-MM${{ env.MINIMAP_VERSION_FORGE }}" >> $GITHUB_ENV
- name: Get Neo Jar Filename
run: |
echo "XP_NEO=XaeroPlus-${{ env.XP_VERSION}}+neoforge-${{ env.MINECRAFT_VERSION }}-WM${{ env.WORLDMAP_VERSION_NEO }}-MM${{ env.MINIMAP_VERSION_NEO }}" >> $GITHUB_ENV
- name: Upload Fabric Artifact
if: ${{ inputs.fabric }}
uses: actions/upload-artifact@v4
with:
name: ${{ env.XP_FABRIC }}
path: fabric/build/libs/${{ env.XP_FABRIC }}.jar
if-no-files-found: error
- name: Upload Forge Artifact
if: ${{ inputs.forge }}
uses: actions/upload-artifact@v4
with:
name: ${{ env.XP_FORGE }}
path: forge/build/libs/${{ env.XP_FORGE }}.jar
if-no-files-found: error
- name: Upload Neo Artifact
if: ${{ inputs.neo }}
uses: actions/upload-artifact@v4
with:
name: ${{ env.XP_NEO }}
path: neo/build/libs/${{ env.XP_NEO }}.jar
if-no-files-found: error
- name: Generate changelog
id: changelog
uses: metcalfc/[email protected]
with:
myToken: ${{ secrets.GITHUB_TOKEN }}
base-ref: ${{ inputs.baseRef }}
head-ref: ${{ inputs.headRef }}
outputs:
changelog: ${{ steps.changelog.outputs.changelog }}
xp_version: ${{ env.XP_VERSION }}
xp_fabric: ${{ env.XP_FABRIC }}
xp_forge: ${{ env.XP_FORGE }}
xp_neo: ${{ env.XP_NEO }}
worldmap_version_fabric: ${{ env.WORLDMAP_VERSION_FABRIC }}
minimap_version_fabric: ${{ env.MINIMAP_VERSION_FABRIC }}
worldmap_version_forge: ${{ env.WORLDMAP_VERSION_FORGE }}
minimap_version_forge: ${{ env.MINIMAP_VERSION_FORGE }}
worldmap_version_neo: ${{ env.WORLDMAP_VERSION_NEO }}
minimap_version_neo: ${{ env.MINIMAP_VERSION_NEO }}
release:
needs:
- build
runs-on: ubuntu-latest
steps:
- name: Check out repository
uses: actions/checkout@v4
- name: Download job artifacts
uses: actions/download-artifact@v4
with:
merge-multiple: true
path: artifacts/
- name: Release Fabric CurseForge and Modrinth
if: ${{ inputs.fabric }}
uses: Kir-Antipov/[email protected]
with:
changelog: ${{ needs.build.outputs.changelog }}
curseforge-token: ${{ secrets.CURSEFORGE_TOKEN }}
curseforge-id: 866084
modrinth-token: ${{ secrets.MODRINTH_TOKEN }}
modrinth-id: EnPUzSTg
files: |
artifacts/${{ needs.build.outputs.xp_fabric }}.jar
name: ${{ needs.build.outputs.xp_version }} (Fabric) (WM${{ needs.build.outputs.worldmap_version_fabric }} MM${{ needs.build.outputs.minimap_version_fabric }})
version: ${{ needs.build.outputs.xp_version }}+fabric-${{ env.MINECRAFT_VERSION }}
loaders: |
fabric
quilt
game-versions: |
${{ env.MINECRAFT_VERSION }}
1.21.2
dependencies: |
xaerominimap@${{ needs.build.outputs.minimap_version_fabric }}(required){modrinth:1bokaNcj}{curseforge:263420}
xaeroworldmap@${{ needs.build.outputs.worldmap_version_fabric }}(required){modrinth:NcUtCpym}{curseforge:317780}
fabric-api(required){modrinth:P7dR8mSH}{curseforge:306612}
worldtools(optional){modrinth:FlFKBOIX}{curseforge:909868}
waystones(optional){modrinth:LOpKHB2A}{curseforge:245755}
fwaystones(optional){modrinth:sTZr7NVo}{curseforge:410902}
- name: Release Forge CurseForge and Modrinth
if: ${{ inputs.forge }}
uses: Kir-Antipov/[email protected]
with:
changelog: ${{ needs.build.outputs.changelog }}
curseforge-token: ${{ secrets.CURSEFORGE_TOKEN }}
curseforge-id: 866084
modrinth-token: ${{ secrets.MODRINTH_TOKEN }}
modrinth-id: EnPUzSTg
files: |
artifacts/${{ needs.build.outputs.xp_forge }}.jar
name: ${{ needs.build.outputs.xp_version }} (Forge) (WM${{ needs.build.outputs.worldmap_version_forge }} MM${{ needs.build.outputs.minimap_version_forge }})
version: ${{ needs.build.outputs.xp_version }}+forge-${{ env.MINECRAFT_VERSION }}
loaders: |
forge
game-versions: |
${{ env.MINECRAFT_VERSION }}
1.21.2
dependencies: |
xaerominimap@${{ needs.build.outputs.minimap_version_forge }}(required){modrinth:1bokaNcj}{curseforge:263420}
xaeroworldmap@${{ needs.build.outputs.worldmap_version_forge }}(required){modrinth:NcUtCpym}{curseforge:317780}
worldtools(optional){modrinth:FlFKBOIX}{curseforge:909868}
waystones(optional){modrinth:LOpKHB2A}{curseforge:245755}
- name: Release Neo CurseForge and Modrinth
if: ${{ inputs.neo }}
uses: Kir-Antipov/[email protected]
with:
changelog: ${{ needs.build.outputs.changelog }}
curseforge-token: ${{ secrets.CURSEFORGE_TOKEN }}
curseforge-id: 866084
modrinth-token: ${{ secrets.MODRINTH_TOKEN }}
modrinth-id: EnPUzSTg
files: |
artifacts/${{ needs.build.outputs.xp_neo }}.jar
name: ${{ needs.build.outputs.xp_version }} (NeoForge) (WM${{ needs.build.outputs.worldmap_version_neo }} MM${{ needs.build.outputs.minimap_version_neo }})
version: ${{ needs.build.outputs.xp_version }}+neoforge-${{ env.MINECRAFT_VERSION }}
loaders: |
neoforge
game-versions: |
${{ env.MINECRAFT_VERSION }}
1.21.2
dependencies: |
xaerominimap@${{ needs.build.outputs.minimap_version_neo }}(required){modrinth:1bokaNcj}{curseforge:263420}
xaeroworldmap@${{ needs.build.outputs.worldmap_version_neo }}(required){modrinth:NcUtCpym}{curseforge:317780}
worldtools(optional){modrinth:FlFKBOIX}{curseforge:909868}
waystones(optional){modrinth:LOpKHB2A}{curseforge:245755}
- name: Github Release
if: ${{ inputs.fabric }} || ${{ inputs.forge }} || ${{ inputs.neo }}
uses: ncipollo/release-action@v1
with:
tag: "${{ needs.build.outputs.xp_version }}"
commit: 1.20.1
artifacts: "artifacts/*.jar"
allowUpdates: true
makeLatest: true
body: |
For WorldMap and Minimap Versions:
* Fabric: WM${{ needs.build.outputs.worldmap_version_fabric }} MM${{ needs.build.outputs.minimap_version_fabric }}
* Forge: WM${{ needs.build.outputs.worldmap_version_forge }} MM${{ needs.build.outputs.minimap_version_forge }}
* NeoForge: WM${{ needs.build.outputs.worldmap_version_neo }} MM${{ needs.build.outputs.minimap_version_neo }}
${{ needs.build.outputs.changelog }}
omitBodyDuringUpdate: true