Skip to content

🔨 Trigger build

🔨 Trigger build #23

Workflow file for this run

name: Build and Sign Mod (Fabric)
on:
push:
paths:
- 'release_build_fabric'
jobs:
build:
runs-on: ubuntu-latest
environment: Build
steps:
- uses: actions/checkout@v4
- name: Set up JDK 17
uses: actions/setup-java@v4
with:
java-version: '17'
distribution: 'adopt'
- name: Validate Gradle Wrapper
uses: gradle/wrapper-validation-action@v3
- name: Read mod data from gradle.properties
id: mod_data
uses: christian-draeger/[email protected]
with:
path: './gradle.properties'
properties: 'mod_id mod_version minecraft_version'
- name: Cache
uses: actions/cache@v4
with:
path: ~/.gradle/caches
key: gradle-minecraft-${{ steps.mod_data.outputs.minecraft_version }}-fabric
- name: Make gradlew executable
run: chmod +x ./gradlew
- name: Run Data Gen
env:
GPR_USER: "MrCrayfish"
GPR_KEY: ${{ secrets.GPR_TOKEN }}
TARGET_LOADER: "fabric"
run: ./gradlew :fabric:runDatagen
- name: Build and Publish
env:
TARGET_LOADER: "fabric"
GPR_USER: "MrCrayfish"
GPR_KEY: ${{ secrets.GPR_TOKEN }}
SIGNING_KEY: ${{ secrets.GPG_SIGNING_KEY }}
SIGNING_PASSPHRASE: ${{ secrets.GPG_PASSPHRASE }}
run: ./gradlew :fabric:build :fabric:publish
- name: Stop Gradle
run: ./gradlew --stop
- name: Construct artifact files
id: artifacts
run: |
echo "fabric=fabric/build/libs/${{ steps.mod_data.outputs.mod_id }}-fabric-${{ steps.mod_data.outputs.minecraft_version }}-${{ steps.mod_data.outputs.mod_version }}.jar" >> "$GITHUB_OUTPUT"
- name: Import GPG
env:
SIGNING_KEY: ${{ secrets.GPG_SIGNING_KEY }}
SIGNING_PASSPHRASE: ${{ secrets.GPG_PASSPHRASE }}
if: ${{ env.SIGNING_KEY != '' && env.SIGNING_PASSPHRASE != '' }}
uses: crazy-max/[email protected]
with:
gpg_private_key: ${{ env.SIGNING_KEY }}
passphrase: ${{ env.SIGNING_PASSPHRASE }}
- name: Sign JAR
env:
SIGNING_PASSPHRASE: ${{ secrets.GPG_PASSPHRASE }}
if: ${{ env.SIGNING_PASSPHRASE != '' }}
run: |
gpg --batch --yes --passphrase "${{ env.SIGNING_PASSPHRASE }}" --armor --detach-sign ${{ steps.artifacts.outputs.fabric }}
- name: Upload Fabric Artifacts
uses: actions/upload-artifact@v4
with:
name: '${{ steps.mod_data.outputs.mod_id }}-fabric-${{ steps.mod_data.outputs.minecraft_version }}-${{ steps.mod_data.outputs.mod_version }}'
path: |
${{ steps.artifacts.outputs.fabric }}
${{ steps.artifacts.outputs.fabric }}.asc