Setup automated publishing to CF and Modrinth (#15)
* Configure mod-publish-plugin * Configure actions to run mod-publish-plugin To publish a release: - Set the mod version to x.x.x(-beta.x) in gradle.properties and commit - Create a git tag named vx.x.x(-beta.x) (note the v prefix) - Push commit, push tag - Manually create a (pre-)release for the tag on GitHub web ui. The release notes will be reused for modrinth and CF. The release creation will trigger the workflow and publish to modrinth and CF. The build script will check for when the version contains `-beta.` and mark it as a beta on modrinth and CF. After publishing a release, it's good practice to bump the version and add -SNAPSHOT, i.e. after releasing 0.0.1, push a commit changing the version to 0.0.2-SNAPSHOT. This ensures people downloading action artifacts have correct version numbers. This commit also updates gradle/actions/setup-gradle which removes the need for a separate wrapper validation action (it is included in setup-gradle v4) * Set project IDs
This commit is contained in:
14
.github/workflows/build.yml
vendored
14
.github/workflows/build.yml
vendored
@@ -4,6 +4,9 @@ on:
|
||||
branches: [ "**" ]
|
||||
tags-ignore: [ "**" ]
|
||||
pull_request:
|
||||
release:
|
||||
types: [ published ]
|
||||
|
||||
jobs:
|
||||
build:
|
||||
# Only run on PRs if the source branch is on someone else's repo
|
||||
@@ -12,15 +15,13 @@ jobs:
|
||||
steps:
|
||||
- name: "checkout git repository"
|
||||
uses: actions/checkout@v4
|
||||
- name: "validate gradle wrapper"
|
||||
uses: gradle/actions/wrapper-validation@v3
|
||||
- name: "setup jdk"
|
||||
uses: actions/setup-java@v4
|
||||
with:
|
||||
distribution: 'temurin'
|
||||
java-version: 21
|
||||
- name: "setup gradle"
|
||||
uses: gradle/actions/setup-gradle@v3
|
||||
uses: gradle/actions/setup-gradle@v4
|
||||
# gradle-build-action doesn't support caching files in the project dir
|
||||
- name: "cache project local caches"
|
||||
uses: actions/cache@v4
|
||||
@@ -34,6 +35,13 @@ jobs:
|
||||
run: ./installConcurrentUtil.sh
|
||||
- name: "execute gradle build"
|
||||
run: ./gradlew build
|
||||
- name: Publish (Pre-)Release to Modrinth
|
||||
if: "${{ env.STATUS == 'release' && github.event_name == 'release' }}"
|
||||
run: ./gradlew :moonrise-fabric:publishMods :moonrise-neoforge:publishMods
|
||||
env:
|
||||
MODRINTH_TOKEN: "${{ secrets.MODRINTH_TOKEN }}"
|
||||
CURSEFORGE_TOKEN: "${{ secrets.CURSEFORGE_TOKEN }}"
|
||||
RELEASE_NOTES: "${{ github.event.release.body }}"
|
||||
- name: "upload artifacts"
|
||||
uses: actions/upload-artifact@v4
|
||||
with:
|
||||
|
||||
Reference in New Issue
Block a user