Skip to content

Commit

Permalink
🚧 Split build action into separate action per modloader
Browse files Browse the repository at this point in the history
  • Loading branch information
MrCrayfish committed Apr 28, 2024
1 parent 75ab094 commit c24a7ba
Show file tree
Hide file tree
Showing 7 changed files with 193 additions and 30 deletions.
93 changes: 93 additions & 0 deletions .github/workflows/fabric.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,93 @@
name: Build and Sign Mod (Fabric)
on:
push:
paths:
- 'release_build_fabric'
jobs:
build:
runs-on: ubuntu-latest
environment: Build
steps:
- uses: actions/checkout@v3
- name: Set up JDK 21
uses: actions/setup-java@v3
with:
java-version: '21'
distribution: 'adopt'
- name: Validate Gradle Wrapper
uses: gradle/wrapper-validation-action@v1
- name: Read modid from gradle.properties
id: mod_id
uses: Reedyuk/[email protected]
with:
path: './gradle.properties'
property: 'mod_id'
- name: Read mod version from gradle.properties
id: mod_version
uses: Reedyuk/[email protected]
with:
path: './gradle.properties'
property: 'mod_version'
- name: Read minecraft version from gradle.properties
id: mc_version
uses: Reedyuk/[email protected]
with:
path: './gradle.properties'
property: 'minecraft_version'
- name: Cache
uses: actions/cache@v3
with:
path: ~/.gradle/caches
key: gradle-minecraft-${{ steps.mc_version.outputs.value }}
- name: Load Keystore
id: load_keystore
env:
JKS: ${{ secrets.MRCRAYFISH_JKS }}
if: ${{ env.JKS != '' }}
uses: timheuer/[email protected]
with:
fileName: 'keystore.jks'
encodedString: ${{ env.JKS }}
- name: Set Keystore Variables
if: ${{ steps.load_keystore.outputs.filePath != '' }}
run: |
echo "KEYSTORE=${{ steps.load_keystore.outputs.filePath }}" >> $GITHUB_ENV
echo "KEYSTORE_ALIAS=${{ secrets.MRCRAYFISH_JKS_ALIAS }}" >> $GITHUB_ENV
echo "KEYSTORE_PASS=${{ secrets.MRCRAYFISH_JKS_PASSPHRASE }}" >> $GITHUB_ENV
- name: Make gradlew executable
run: chmod +x ./gradlew
- name: Build and Publish
env:
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_id.outputs.value }}-fabric-${{ steps.mc_version.outputs.value }}-${{ steps.mod_version.outputs.value }}.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@v2
with:
name: '${{ steps.mod_id.outputs.value }}-fabric-${{ steps.mc_version.outputs.value }}-${{ steps.mod_version.outputs.value }}'
path: |
${{ steps.artifacts.outputs.fabric }}
${{ steps.artifacts.outputs.fabric }}.asc
93 changes: 93 additions & 0 deletions .github/workflows/forge.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,93 @@
name: Build and Sign Mod (Forge)
on:
push:
paths:
- 'release_build_forge'
jobs:
build:
runs-on: ubuntu-latest
environment: Build
steps:
- uses: actions/checkout@v3
- name: Set up JDK 21
uses: actions/setup-java@v3
with:
java-version: '21'
distribution: 'adopt'
- name: Validate Gradle Wrapper
uses: gradle/wrapper-validation-action@v1
- name: Read modid from gradle.properties
id: mod_id
uses: Reedyuk/[email protected]
with:
path: './gradle.properties'
property: 'mod_id'
- name: Read mod version from gradle.properties
id: mod_version
uses: Reedyuk/[email protected]
with:
path: './gradle.properties'
property: 'mod_version'
- name: Read minecraft version from gradle.properties
id: mc_version
uses: Reedyuk/[email protected]
with:
path: './gradle.properties'
property: 'minecraft_version'
- name: Cache
uses: actions/cache@v3
with:
path: ~/.gradle/caches
key: gradle-minecraft-${{ steps.mc_version.outputs.value }}
- name: Load Keystore
id: load_keystore
env:
JKS: ${{ secrets.MRCRAYFISH_JKS }}
if: ${{ env.JKS != '' }}
uses: timheuer/[email protected]
with:
fileName: 'keystore.jks'
encodedString: ${{ env.JKS }}
- name: Set Keystore Variables
if: ${{ steps.load_keystore.outputs.filePath != '' }}
run: |
echo "KEYSTORE=${{ steps.load_keystore.outputs.filePath }}" >> $GITHUB_ENV
echo "KEYSTORE_ALIAS=${{ secrets.MRCRAYFISH_JKS_ALIAS }}" >> $GITHUB_ENV
echo "KEYSTORE_PASS=${{ secrets.MRCRAYFISH_JKS_PASSPHRASE }}" >> $GITHUB_ENV
- name: Make gradlew executable
run: chmod +x ./gradlew
- name: Build and Publish
env:
GPR_USER: "MrCrayfish"
GPR_KEY: ${{ secrets.GPR_TOKEN }}
SIGNING_KEY: ${{ secrets.GPG_SIGNING_KEY }}
SIGNING_PASSPHRASE: ${{ secrets.GPG_PASSPHRASE }}
run: ./gradlew :forge:build :forge:publish
- name: Stop Gradle
run: ./gradlew --stop
- name: Construct artifact files
id: artifacts
run: |
echo "forge=forge/build/libs/${{ steps.mod_id.outputs.value }}-forge-${{ steps.mc_version.outputs.value }}-${{ steps.mod_version.outputs.value }}-signed.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.forge }}
- name: Upload Forge Artifacts
uses: actions/upload-artifact@v2
with:
name: '${{ steps.mod_id.outputs.value }}-forge-${{ steps.mc_version.outputs.value }}-${{ steps.mod_version.outputs.value }}'
path: |
${{ steps.artifacts.outputs.forge }}
${{ steps.artifacts.outputs.forge }}.asc
28 changes: 5 additions & 23 deletions .github/workflows/main.yml → .github/workflows/neoforge.yml
Original file line number Diff line number Diff line change
@@ -1,18 +1,18 @@
name: Build and Sign Mod
name: Build and Sign Mod (NeoForge)
on:
push:
paths:
- 'release_build'
- 'release_build_neoforge'
jobs:
build:
runs-on: ubuntu-latest
environment: Build
steps:
- uses: actions/checkout@v3
- name: Set up JDK 17
- name: Set up JDK 21
uses: actions/setup-java@v3
with:
java-version: '17'
java-version: '21'
distribution: 'adopt'
- name: Validate Gradle Wrapper
uses: gradle/wrapper-validation-action@v1
Expand Down Expand Up @@ -62,14 +62,12 @@ jobs:
GPR_KEY: ${{ secrets.GPR_TOKEN }}
SIGNING_KEY: ${{ secrets.GPG_SIGNING_KEY }}
SIGNING_PASSPHRASE: ${{ secrets.GPG_PASSPHRASE }}
run: ./gradlew build publish
run: ./gradlew :neoforge:build :neoforge:publish
- name: Stop Gradle
run: ./gradlew --stop
- name: Construct artifact files
id: artifacts
run: |
echo "forge=forge/build/libs/${{ steps.mod_id.outputs.value }}-forge-${{ steps.mc_version.outputs.value }}-${{ steps.mod_version.outputs.value }}-signed.jar" >> "$GITHUB_OUTPUT"
echo "fabric=fabric/build/libs/${{ steps.mod_id.outputs.value }}-fabric-${{ steps.mc_version.outputs.value }}-${{ steps.mod_version.outputs.value }}.jar" >> "$GITHUB_OUTPUT"
echo "neoforge=neoforge/build/libs/${{ steps.mod_id.outputs.value }}-neoforge-${{ steps.mc_version.outputs.value }}-${{ steps.mod_version.outputs.value }}-signed.jar" >> "$GITHUB_OUTPUT"
- name: Import GPG
env:
Expand All @@ -85,23 +83,7 @@ jobs:
SIGNING_PASSPHRASE: ${{ secrets.GPG_PASSPHRASE }}
if: ${{ env.SIGNING_PASSPHRASE != '' }}
run: |
gpg --batch --yes --passphrase "${{ env.SIGNING_PASSPHRASE }}" --armor --detach-sign ${{ steps.artifacts.outputs.forge }}
gpg --batch --yes --passphrase "${{ env.SIGNING_PASSPHRASE }}" --armor --detach-sign ${{ steps.artifacts.outputs.fabric }}
gpg --batch --yes --passphrase "${{ env.SIGNING_PASSPHRASE }}" --armor --detach-sign ${{ steps.artifacts.outputs.neoforge }}
- name: Upload Forge Artifacts
uses: actions/upload-artifact@v2
with:
name: '${{ steps.mod_id.outputs.value }}-forge-${{ steps.mc_version.outputs.value }}-${{ steps.mod_version.outputs.value }}'
path: |
${{ steps.artifacts.outputs.forge }}
${{ steps.artifacts.outputs.forge }}.asc
- name: Upload Fabric Artifacts
uses: actions/upload-artifact@v2
with:
name: '${{ steps.mod_id.outputs.value }}-fabric-${{ steps.mc_version.outputs.value }}-${{ steps.mod_version.outputs.value }}'
path: |
${{ steps.artifacts.outputs.fabric }}
${{ steps.artifacts.outputs.fabric }}.asc
- name: Upload NeoForge Artifacts
uses: actions/upload-artifact@v2
with:
Expand Down
7 changes: 0 additions & 7 deletions build.gradle
Original file line number Diff line number Diff line change
Expand Up @@ -115,10 +115,3 @@ subprojects {
options.addStringOption('Xdoclint:none', '-quiet')
}
}

task incrementBuild {
doLast {
int version = file('/release_build').text.toInteger()
file('/release_build').text = version + 1
}
}
File renamed without changes.
1 change: 1 addition & 0 deletions release_build_forge
Original file line number Diff line number Diff line change
@@ -0,0 +1 @@
6
1 change: 1 addition & 0 deletions release_build_neoforge
Original file line number Diff line number Diff line change
@@ -0,0 +1 @@
6

0 comments on commit c24a7ba

Please sign in to comment.