Skip to content

Build Release

Build Release #43

Workflow file for this run

# This is a basic workflow to help you get started with Actions
name: Build Release
# Controls when the action will run. Triggers the workflow on push or pull request
# events but only for the master branch
on:
release:
types: [created]
workflow_dispatch:
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
- uses: actions/checkout@v4
- name: Set up JDK 21
uses: actions/setup-java@v4
with:
distribution: 'microsoft'
java-version: '21'
- name: Grant execute permission for gradlew
run: chmod +x gradlew
- name: Build with Gradle
run: ./gradlew build
- uses: actions/upload-artifact@v4
with:
name: Artifacts
path: build/libs/
- name: Read Changelog
id: read_changelog
shell: bash
run: |
CHANGELOG=$(sed '/___/Q' CHANGELOG.md)
CHANGELOG=$(echo "$CHANGELOG" | sed 1d)
# changelog for Github release
delimiter="$(openssl rand -hex 8)"
{
echo "changelog<<${delimiter}"
echo "$CHANGELOG"
echo "${delimiter}"
} >> $GITHUB_OUTPUT
#echo "Changelog:\n$CHANGELOG" # for debugging
changelog="${CHANGELOG}"
highlight_section=$(echo "$changelog" | awk '/## Highlight/{flag=1;next}/^$/{flag=0}flag')
highlight_section=$'# Highlight\n'"$highlight_section"$'\n\nhttps://hysky.de/'
# Format highlight_section with printf
highlight_section=$(printf "%s" "$highlight_section")
# Store the highlight_section in the CHANGELOG variable
CHANGELOG=$(echo -n "$highlight_section")
# changelog for rest
delimiter="$(openssl rand -hex 8)"
{
echo "changelog_highlight<<${delimiter}"
echo "$CHANGELOG"
echo "${delimiter}"
} >> $GITHUB_OUTPUT
- 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]
- name: Release
id: uploadrelease
uses: softprops/action-gh-release@v1
with:
body: ${{ steps.read_changelog.outputs.changelog }}
token: ${{ secrets.GH_RELEASE }}
files: build/libs/${{ steps.fname.outputs.result }}
- name: Publish using mod-publish-plugin
run: ./gradlew build publishMods
env:
CHANGELOG: ${{ steps.read_changelog.outputs.changelog_highlight }}
DISCORD_WEBHOOK: ${{ secrets.DISCORD_WEBHOOK }}
MODRINTH_TOKEN: ${{ secrets.MODRINTH_TOKEN }}
CURSEFORGE_TOKEN: ${{ secrets.CURSEFORGE_TOKEN }}
- name: Trigger Modpack
shell: bash
run: |
curl -X POST -H "Authorization:Bearer ${{secrets.MODPACK_TOKEN}}" -H "X-GitHub-Api-Version:2022-11-28" https://api.github.com/repos/SkyblockerMod/Skyblocker-modpack/actions/workflows/update.yml/dispatches --data '{"ref":"main"}'