Skip to content

Build Multiplatform #46 #46

Build Multiplatform #46

Build Multiplatform #46 #46

name: Build Multiplatform
run-name: "Build Multiplatform #${{ github.run_number }}"
on:
push:
tags:
- 'v*'
branches:
- main
jobs:
modpack-info:
name: Modpack Info
runs-on: ubuntu-latest
outputs:
projectname: ${{ steps.info.outputs.projectname }}
projectsuffix: ${{ steps.info.outputs.projectsuffix }}
tag: ${{ steps.info.outputs.tag }}
diff: ${{ steps.info.outputs.diff }}
steps:
- name: Checkout
uses: actions/checkout@v4
with:
fetch-depth: 0
- name: Get modpack info
id: info
shell: bash
run: |
set +e
# -- CHECK LOCKFILE --
if [ ! -f pakku-lock.json ]; then
echo "::error::Could not find pakku-lock.json" && exit 1
fi
if [ ! -f pakku.json ]; then
echo "::error::Could not find pakku.json" && exit 1
fi
config_file=`cat pakku.json`
# -- PROJECT NAME --
projectname=`echo $(jq -r '.name' <<< "$config_file")`
echo "projectname=$projectname" >> $GITHUB_OUTPUT
# -- TAG --
latest_tag=$(git describe --tags --abbrev=0)
echo "tag=$latest_tag" >> $GITHUB_OUTPUT
# -- PROJECT SUFFIX --
if [[ ${{ startsWith(github.ref, 'refs/tags/v') }} == true ]]; then
echo "projectsuffix=$latest_tag" >> $GITHUB_OUTPUT
else
echo "projectsuffix=build.${{ github.run_number }}" >> $GITHUB_OUTPUT
fi
# -- DIFF --
previous_commit=$(git log -n 1 --skip 1 --pretty=format:"%h" -- ./pakku-lock.json)
git show $previous_commit:./pakku-lock.json > ./pakku-lock-prev.json
curl https://github.com/juraj-hrivnak/pakku/releases/latest/download/pakku.jar -o pakku.jar -L -J
java -jar ./pakku.jar diff ./pakku-lock-prev.json ./pakku-lock.json --markdown PROJECTS_DIFF.md
# -- OUTPUT DIFF --
cat PROJECTS_DIFF.md >> $GITHUB_STEP_SUMMARY
output_diff=$(< PROJECTS_DIFF.md)
output_diff=$(echo $output_diff | sed -r 's/\\\\n/\\n/g') # Fix new lines
echo "diff=$output_diff" >> $GITHUB_OUTPUT
- name: Send Discord message
uses: "hugoalh/send-discord-webhook-ghaction@5af9cbe30a2a19e7ce18853012ef55487c985954" # 6.0.2
if: ${{ steps.info.outputs.diff != '' }}
with:
key: ${{ secrets.DISCORD_WEBHOOK_DEV }}
username: "GitHub"
avatar_url: "https://github.githubassets.com/assets/GitHub-Mark-ea2971cee799.png"
embeds: |
[
{
"description": "${{ steps.info.outputs.diff }}",
"color": "Discord Blurple",
}
]
build-modpack:
name: Build Modpack
runs-on: ubuntu-latest
needs: [modpack-info]
steps:
- name: Checkout
uses: actions/checkout@v4
- name: Set GroovyScript debug mode to 'false'
shell: bash
run: |
set +e
grooovy="./groovy/runConfig.json"
cat <<< $(jq '.debug = false' $grooovy) > $grooovy
- name: Export modpack
run: |
mkdir build
curl https://github.com/juraj-hrivnak/pakku/releases/latest/download/pakku.jar -o pakku.jar -L -J
java -jar ./pakku.jar export
- name: Upload build
uses: actions/upload-artifact@v4
with:
name: build
path: |
build/
!build/.*