Build Multiplatform #47 #47
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
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" | |
content: ${{ steps.info.outputs.diff }} | |
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/.* |