name: Build Beta on: workflow_dispatch: merge_group: push: branches: - master - bleeding-edge paths-ignore: - 'src/main/resources/assets/skyblocker/lang/**' - 'CHANGELOG.md' - 'FEATURES.md' - 'README.md' pull_request: paths-ignore: - 'src/main/resources/assets/skyblocker/lang/**' - 'CHANGELOG.md' - 'FEATURES.md' - 'README.md' env: REF_NAME: ${{ github.ref_name }} PR_NUMBER: ${{ github.event.number }} PR_SHA: ${{ github.event.pull_request.head.sha }} jobs: # This workflow contains a single job called "build" build: # The type of runner that the job will run on runs-on: ubuntu-latest # Steps represent a sequence of tasks that will be executed as part of the job steps: # Checks-out your repository under $GITHUB_WORKSPACE, so your job can access it - name: Checkout repository uses: actions/checkout@v4 - name: Set jar name uses: actions/github-script@v7 with: result-encoding: string script: | let buildType; let commitSha; buildType = process.env.REF_NAME === "master" || process.env.REF_NAME === "main" ? "beta" : "alpha"; if (process.env.PR_NUMBER) { buildType += `-pr-${process.env.PR_NUMBER}`; commitSha = process.env.PR_SHA; } else { commitSha = process.env.GITHUB_SHA; } console.log(`Set build type to ${buildType} and commit sha to ${commitSha}`); const fs = require("fs"); let file = fs.readFileSync("./gradle.properties"); file = file.toString().split("\n").map(e => e.trim().startsWith("mod_version") ? `${e}-${buildType}-${commitSha.substring(0, 7)}` : e).join("\n"); fs.writeFileSync("./gradle.properties", file); - name: Set up JDK 21 uses: actions/setup-java@v4 with: distribution: 'microsoft' java-version: '21' - name: Setup Gradle uses: gradle/actions/setup-gradle@v3 with: validate-wrappers: true - name: Build with Gradle run: ./gradlew build - name: Store reports if: failure() uses: actions/upload-artifact@v4 with: name: reports path: | **/build/reports/ **/build/test-results/ - name: Process artifacts uses: actions/github-script@v7 id: fname with: result-encoding: string script: | const fs = require("fs") return fs.readdirSync("build/libs/").filter(e => !e.endsWith("dev.jar") && !e.endsWith("sources.jar") && e.endsWith(".jar"))[0].replace(".jar", ""); - name: Upload artifacts uses: actions/upload-artifact@v4 with: name: ${{ steps.fname.outputs.result }} path: build/libs/