Skip to content

v2.0.1

v2.0.1 #22

Workflow file for this run

# This workflow uses actions that are not certified by GitHub.
# They are provided by a third-party and are governed by
# separate terms of service, privacy policy, and support
# documentation.
# This workflow will build a Java project with Gradle and cache/restore any dependencies to improve the workflow execution time
# For more information see: https://docs.github.com/en/actions/automating-builds-and-tests/building-and-testing-java-with-gradle
name: Java CI with Gradle
on:
release:
types: [created]
permissions:
contents: write
jobs:
get-versions:
runs-on: ubuntu-latest
name: "Retrieve Minecraft Version"
outputs:
minecraft_version: ${{ steps.retrieveMinecraftVersion.outputs.minecraft_version }}
minecraft_major: ${{ steps.retrieveMinecraftVersion.outputs.minecraft_major }}
java_version: ${{ steps.retrieveMinecraftVersion.outputs.java_version }}
loader_name: ${{ steps.retrieveMinecraftVersion.outputs.loader_name }}
mod_version: ${{ steps.retrieveModVersion.outputs.mod_version }}
release_type: ${{ steps.retrieveModVersion.outputs.release_type }}
steps:
- uses: actions/checkout@v4
- id: retrieveMinecraftVersion
name: "Retrieve Minecraft Version"
run: |
minecraftVersion=$(grep '^minecraft_version=' gradle.properties | cut -d "=" -f 2)
echo "minecraft_version=${minecraftVersion}" >> "$GITHUB_OUTPUT"
minecraftMajor=$(echo $minecraftVersion | sed -E 's/([0-9]+)\.([0-9]+)(\.[0-9]+)?/\1.\2/')
echo "minecraft_major=$minecraftMajor" >> "$GITHUB_OUTPUT"
echo "java_version=$(test ${minecraftMajor#*.} = 20 && echo 17 || echo 21)" >> "$GITHUB_OUTPUT"
echo "loader_name=$(test ${minecraftMajor#*.} = 20 && echo Forge || echo NeoForge)" >> "$GITHUB_OUTPUT"
- id: retrieveModVersion
name: "Retrieve CreateColonies Version"
run: |
gitRef="${{ github.ref }}"
tagName=$(echo "${gitRef/refs\/tags\//}")
echo "mod_version=${tagName/v/}" >> "$GITHUB_OUTPUT"
inFix=$(echo $tagName | sed 's/.*-\(.*\)\..*/\1/')
echo "release_type=$(test beta = $inFix && echo beta || ( test alpha = $inFix && echo alpha ) || release)" >> "$GITHUB_OUTPUT"
build:
needs: ["get-versions"]
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v4
- name: Set up JDK
uses: actions/setup-java@v4
with:
java-version: "${{ needs.get-versions.outputs.java_version }}"
distribution: 'temurin'
# Configure Gradle for optimal use in GitHub Actions, including caching of downloaded dependencies.
# See: https://github.com/gradle/actions/blob/main/setup-gradle/README.md
- name: Setup Gradle
uses: gradle/actions/setup-gradle@af1da67850ed9a4cedd57bfd976089dd991e2582 # v4.0.0
with:
cache-read-only: false
- name: Build with Gradle Wrapper
run: ./gradlew --build-cache build -Pmod_version=${{ needs.get-versions.outputs.mod_version }}
- name: Upload Mod
id: uploadMod
uses: actions/upload-release-asset@v1
env:
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
with:
upload_url: ${{ github.event.release.upload_url }}
asset_path: ./build/libs/createcolonies-${{ needs.get-versions.outputs.mod_version }}.jar
asset_name: CreateColonies-${{ needs.get-versions.outputs.minecraft_version }}-${{ needs.get-versions.outputs.mod_version }}.jar
asset_content_type: application/java-archive
- name: Upload to CurseForge
uses: itsmeow/curseforge-upload@v3
with:
file_path: ./build/libs/createcolonies-${{ needs.get-versions.outputs.mod_version }}.jar
game_endpoint: minecraft
game_versions: "Minecraft ${{ needs.get-versions.outputs.minecraft_major }}:${{ needs.get-versions.outputs.minecraft_version }},Java ${{ needs.get-versions.outputs.java_version }},${{ needs.get-versions.outputs.loader_name }}"
project_id: "1332665"
token: "${{ secrets.CURSE_TOKEN }}"
changelog: ${{ github.event.release.body }}
display_name: CreateColonies-${{ needs.get-versions.outputs.minecraft_version }}-${{ needs.get-versions.outputs.mod_version }}.jar
release_type: ${{ needs.get-versions.outputs.release_type }}