name: Build TurnBasedMC and create Release on: push: tags: - '*' jobs: check-release-exists: runs-on: highmem_self outputs: status: ${{ steps.release_exists_check.outputs.http_code }} steps: - name: Check if release already exists id: release_exists_check run: | curl -X GET "https://git.seodisparate.com/api/v1/repos/stephenseo/TurnBasedMinecraftMod/releases/tags/${GITHUB_REF_NAME}" \ -H 'accept: application/json' -o release_check_resp.json 2>/dev/null \ -w '%{http_code}\n' | sed 's/^\([0-9]\+\)/http_code=\1/' >> "$GITHUB_OUTPUT" build-and-create-release: needs: check-release-exists if: ${{ needs.check-release-exists.outputs.status == '404' }} runs-on: highmem_self steps: - run: git clone --depth=1 --no-single-branch https://git.seodisparate.com/stephenseo/TurnBasedMinecraftMod.git TurnBasedMinecraftMod - run: cd TurnBasedMinecraftMod && git checkout ${GITHUB_REF_NAME} - run: cd TurnBasedMinecraftMod && sed -i '/org.gradle.jvmargs/s/Xmx[0-9]\+m/Xmx1024m/' gradle.properties - run: cd TurnBasedMinecraftMod && ./gradlew --console=plain build - run: cd TurnBasedMinecraftMod/build/libs && find . -type f -exec sha256sum '{}' ';' -exec bash -c 'sha256sum {} >> sha256sums.txt' ';' && java --version >> javaVersion.txt && javac --version >> javaVersion.txt - name: Create release and attach jar run: | curl --fail-with-body -X 'POST' \ "https://git.seodisparate.com/api/v1/repos/stephenseo/TurnBasedMinecraftMod/releases" \ -H 'accept: application/json' \ -H "Authorization: token ${GITHUB_TOKEN}" \ -H 'Content-Type: application/json' \ -d "{ \"name\": \"TurnBasedMinecraftMod version ${GITHUB_REF_NAME}\", \"body\": \"See the [Changelog](https://git.seodisparate.com/stephenseo/TurnBasedMinecraftMod/src/branch/master/Changelog.md) $(java --version | sed -n '1p;2,$s/^/ /p') $(javac --version) $(find TurnBasedMinecraftMod/build/libs -regex '.*all.jar$' -exec sha256sum '{}' ';')\", \"tag_name\": \"${GITHUB_REF_NAME}\" }" > response.json \ && curl --fail-with-body -X 'POST' \ "https://git.seodisparate.com/api/v1/repos/stephenseo/TurnBasedMinecraftMod/releases/$(jq .id < response.json)/assets" \ -H 'accept: application/json' \ -H "Authorization: token ${GITHUB_TOKEN}" \ -H 'Content-Type: multipart/form-data' \ -F "attachment=@$(find TurnBasedMinecraftMod/build/libs -regex '.*all.jar$');type=application/java-archive" > response2.json