Skip to content

json crap

json crap #343

Workflow file for this run

name: Mod Compile Checks
on:
push:
branches: [ "1.20.1" ]
paths: [".github/workflows/gradle.yml","src/**"]
pull_request:
branches: [ "1.20.1" ]
paths: [".github/workflows/gradle.yml","src/**"]
jobs:
release-jar-snapshot:
runs-on: ubuntu-latest
permissions:
contents: write
steps:
- uses: actions/checkout@v4
- name: Set up JDK 17
uses: actions/setup-java@v4
with:
java-version: '17'
distribution: 'temurin'
- name: Setup Gradle
uses: gradle/actions/setup-gradle@417ae3ccd767c252f5661f1ace9f835f9654f2b5 # v3.1.0
- name: Read Properties
id: readproperties
uses: BrycensRanch/read-properties-action@v1
with:
file: gradle.properties
all: true
- name: Truncate Git SHA
id: truncated
uses: actions/[email protected]
with:
script: |
const sha = context.sha.substring(0,7)
core.setOutput('sha', sha)
core.setOutput('versionStr', '${{steps.readproperties.outputs.mod_version}}.alpha.' + sha)
core.setOutput('shouldBuild', (context.eventName === "push").toString())
- name: Run Data Generation (Server, Client)
id: datagen
env:
MOD_VERSION: ${{ steps.truncated.outputs.versionStr }}
run: ./gradlew runData
- name: Build JAR file
if: steps.truncated.outputs.shouldBuild == 'true'
env:
MOD_VERSION: ${{ steps.truncated.outputs.versionStr }}
run: ./gradlew build
- name: Generate Checksum
if: steps.truncated.outputs.shouldBuild == 'true'
uses: jmgilman/actions-generate-checksum@v1
with:
patterns: |
build/libs/*
- name: Fetch Last Release Checksum
if: steps.truncated.outputs.shouldBuild == 'true'
uses: robinraju/[email protected]
with:
latest: true
#fileName: checksum.txt
out-file-path: "lastRelease"
- name: Check Checksums
if: steps.truncated.outputs.shouldBuild == 'true'
id: checked
uses: actions/[email protected]
with:
script: |
const fs = require('fs')
if(!fs.existsSync("lastRelease/checksum.txt")) { core.setOutput('same', 'false'); return }
function sums(str) { return str.split(/\s+/).filter((e,i)=> i % 2 == 0).sort() }
const entriesA = sums(fs.readFileSync("checksum.txt", "utf-8"))
const entriesB = sums(fs.readFileSync("lastRelease/checksum.txt", "utf-8"))
if(entriesA.length != entriesB.length) { core.setOutput('same', 'false'); return }
for (const [idx, sum] of entriesA.entries()) {
console.log(`Checking ${sum} to ${entriesB[idx]}`)
if(entriesB[idx] != sum) { core.setOutput('same', 'false'); return }
}
core.setOutput('same', 'true')
- name: Create Release
if: steps.checked.outputs.same == 'false'
uses: softprops/action-gh-release@v2
with:
files: |
checksum.txt
build/libs/*
tag_name: snapshot-${{ steps.truncated.outputs.sha }}
name: ${{steps.readproperties.outputs.mod_name}} ${{ steps.truncated.outputs.versionStr }}
draft: false