Skip to content

Commit

Permalink
Automatic releases to Modrinth and Hangar (#827)
Browse files Browse the repository at this point in the history
* Update gradle.yml

- added publish to Hangar, Modrinth, and Github
- added new check, "Version Increment (Beta)" to release beta builds

* Update gradle.yml

* Swapped to upload when we publish an Artifact

---------

Co-authored-by: Peaches_MLG <[email protected]>
  • Loading branch information
sh0inx and PeachesMLG authored May 11, 2024
1 parent 37bc78e commit a3e447b
Show file tree
Hide file tree
Showing 3 changed files with 169 additions and 55 deletions.
32 changes: 32 additions & 0 deletions .github/workflows/gradle-build.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,32 @@
# This workflow will build a Java project with Gradle
# For more information see: https://help.github.com/actions/language-and-framework-guides/building-and-testing-java-with-gradle
#
# This worflow will also upload an artifact to Nexus, Hangar, Modrinth, and GitHub releases.

name: Java CI with Gradle
on: [ push ]

jobs:
build:
runs-on: ubuntu-latest
if: "!contains(github.event.commits[0].message, '[ci-skip]')"
steps:
- uses: actions/[email protected]
- uses: gradle/wrapper-validation-action@v1
- name: Set up JDK 17
uses: actions/[email protected]
with:
distribution: temurin
java-version: 17
cache: gradle
- name: Grant execute permission for gradlew
run: chmod +x gradlew
- name: Test with Gradle
run: ./gradlew test
- name: Build with Gradle
run: ./gradlew build
- name: Upload artifacts
uses: "actions/[email protected]"
with:
name: "IridiumSkyblock"
path: "build/libs/IridiumSkyblock-*.jar"
55 changes: 0 additions & 55 deletions .github/workflows/gradle.yml

This file was deleted.

137 changes: 137 additions & 0 deletions .github/workflows/publish.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,137 @@
name: Publish Artifacts
on:
release:
types: [ published ]

jobs:
build:
runs-on: ubuntu-latest
steps:
- uses: actions/[email protected]
- uses: gradle/wrapper-validation-action@v1
- name: Set up JDK 17
uses: actions/[email protected]
with:
distribution: temurin
java-version: 17
cache: gradle
- name: Grant execute permission for gradlew
run: chmod +x gradlew
- name: Test with Gradle
run: ./gradlew test
- name: Build with Gradle
run: ./gradlew build
- name: Upload artifacts
uses: "actions/[email protected]"
with:
name: "IridiumSkyblock"
path: "build/libs/IridiumSkyblock-*.jar"
- name: Upload release asset
uses: actions/upload-release-asset@v1
with:
upload_url: ${{ github.event.release.upload_url }}
asset_path: build/libs/IridiumSkyblock-*.jar
asset_name: IridiumSkyblock.jar
asset_content_type: application/java-archive
token: ${{ secrets.GITHUB_TOKEN }}

publish-nexus:
needs: build
runs-on: ubuntu-latest
steps:
- name: Downloading artifact
uses: actions/checkout@v2
- uses: thecodemonkey/action-get-gradle-version@master
id: version
with:
file: "build.gradle.kts"
- uses: actions/[email protected]
with:
name: "IridiumSkyblock"
path: "./"

- name: Publishing to Nexus
uses: sonatype-nexus-community/nexus-repo-github-action@master
with:
serverUrl: "https://nexus.iridiumdevelopment.net/"
username: "${{ secrets.NEXUS_USERNAME }}"
password: "${{ secrets.NEXUS_PASSWORD }}"
format: "maven2"
repository: "maven-releases"
coordinates: "groupId=com.iridium artifactId=IridiumSkyblock version=${{steps.version.outputs.version}} generate-pom=on"
assets: "extension=jar"
filename: "IridiumSkyblock-*.jar"

publish-hangar:
needs: build
runs-on: ubuntu-latest
steps:
- name: Downloading artifact
uses: actions/checkout@v2
- uses: thecodemonkey/action-get-gradle-version@master
id: version
with:
file: "build.gradle.kts"
- uses: actions/[email protected]
with:
name: "IridiumSkyblock"
path: "./"

- if: github.event.release.prerelease == true
name: Publishing to Hangar (Beta)
uses: benwoo1110/[email protected]
with:
api-token: ${{ secrets.HANGAR_API_TOKEN }}
slug: IridiumSkyblock
channel: beta
version: ${{steps.version.outputs.version}}
files: "IridiumSkyblock-*.jar"

- if: github.event.release.prerelease == false
name: Publishing to Hangar (Release)
uses: benwoo1110/[email protected]
with:
api-token: ${{ secrets.HANGAR_API_TOKEN }}
slug: IridiumSkyblock
channel: release
version: ${{steps.version.outputs.version}}
files: "IridiumSkyblock-*.jar"

publish-modrinth:
needs: build
runs-on: ubuntu-latest
steps:
- name: Downloading artifact
uses: actions/checkout@v2
- uses: thecodemonkey/action-get-gradle-version@master
id: version
with:
file: "build.gradle.kts"
- uses: actions/[email protected]
with:
name: "IridiumSkyblock"
path: "./"

- if: github.event.release.prerelease == true
name: Publish to Modrinth (Beta)
uses: Kir-Antipov/[email protected]
with:
files: "IridiumSkyblock-*.jar"
version: ${{steps.version.outputs.version}}
version-type: beta
modrinth-id: uVMG0MzO
modrinth-featured: true
modrinth-unfeature-mode: any
modrinth-token: ${{ secrets.MODRINTH_TOKEN }}

- if: github.event.release.prerelease == false
name: Publish to Modrinth (Release)
uses: Kir-Antipov/[email protected]
with:
files: "IridiumSkyblock-*.jar"
version: ${{steps.version.outputs.version}}
version-type: release
modrinth-id: uVMG0MzO
modrinth-featured: true
modrinth-unfeature-mode: any
modrinth-token: ${{ secrets.MODRINTH_TOKEN }}

0 comments on commit a3e447b

Please sign in to comment.