Skip to content

Build #83

Build #83 #83

Workflow file for this run

name: Build
run-name: "Build #${{ github.run_number }}"
on:
push:
tags:
- "*.*.*"
concurrency:
group: ${{ github.ref }}
cancel-in-progress: true
jobs:
modpack-info:
name: Modpack Info
runs-on: ubuntu-latest
outputs:
project_name: ${{ steps.info.outputs.project_name }}
project_version: ${{ steps.info.outputs.project_version }}
mc_version: ${{ steps.info.outputs.mc_version }}
changelog: ${{ steps.changelog.outputs.description }}
steps:
- name: Checkout
uses: actions/checkout@v4.1.1
- name: Get tag
id: version
uses: "WyriHaximus/github-action-get-previous-tag@v1.3.0"
with:
fallback: tag_not_found
- name: Modpack info
id: info
shell: bash
run: |
set +e
if [ ! -f ./.github/buildtools/modpack/manifest.json ]; then
echo "::error::Could not find manifest.json" && exit 1
fi
manifestjson=`cat ./.github/buildtools/modpack/manifest.json`
project_name=`echo $(jq -r '.name' <<< "$manifestjson")`
echo "project_name=$project_name" >> $GITHUB_OUTPUT
mc_version=`echo $(jq -r '.minecraft.version' <<< "$manifestjson")`
echo "mc_version=$mc_version" >> $GITHUB_OUTPUT
if [[ ${{ startsWith(github.ref, 'refs/tags/') }} == true ]]; then
echo "project_version=${{ steps.version.outputs.tag }}" >> $GITHUB_OUTPUT
else
echo "project_version=build.${{ github.run_number }}" >> $GITHUB_OUTPUT
fi
- name: Changelog Parser
id: changelog
uses: coditory/changelog-parser@v1.0.2
with:
path: CHANGELOG.md
build-cf-modpack:
name: Build CF Modpack
runs-on: ubuntu-latest
needs: [modpack-info]
steps:
- name: Checkout
uses: actions/checkout@v4.1.1
- name: Replace strings
shell: bash
run: |
VERSION=${{ needs.modpack-info.outputs.project_version }}
sed -i -e "s/DEV/${VERSION}/g" .github/buildtools/modpack/manifest.json
sed -i -e "s/DEV/${VERSION}/g" config/fancymenu/customization/main_menu.txt
sed -i -e "s/DEV/${VERSION}/g" config/bcc-common.toml
- name: Export CF
run: |
mkdir -p overrides
mv -vf {config,defaultconfigs,kubejs} overrides/
mv -vf .github/buildtools/modpack/manifest.json ./
mv -vf .github/buildtools/modpack/modlist.html ./
zip -r ${{ needs.modpack-info.outputs.project_name }}-${{ needs.modpack-info.outputs.project_version }}-cf.zip manifest.json modlist.html overrides
- name: Upload zip cf
uses: actions/upload-artifact@v4.0.0
with:
name: ${{ needs.modpack-info.outputs.project_name }}-${{ needs.modpack-info.outputs.project_version }}-cf
path: ${{ needs.modpack-info.outputs.project_name }}-${{ needs.modpack-info.outputs.project_version }}-cf.zip
retention-days: 5
build-mmc-modpack:
name: Build MMC Modpack
runs-on: ubuntu-latest
needs: [modpack-info]
steps:
- name: Checkout
uses: actions/checkout@v4.1.1
- name: Replace strings
shell: bash
run: |
VERSION=${{ needs.modpack-info.outputs.project_version }}
sed -i -e "s/DEV/${VERSION}/g" .github/buildtools/modpack/instance.cfg
sed -i -e "s/DEV/${VERSION}/g" config/fancymenu/customization/main_menu.txt
sed -i -e "s/DEV/${VERSION}/g" config/bcc-common.toml
- name: Download Mods
run: |
git submodule init
cd mods
git config --global credential.helper '!f() {
echo "username=Xikaro";
echo "password=${{ secrets.USER_TOKEN_XIKARO }}"; }; f'
git submodule update --recursive
- name: Export MMC
run: |
mkdir -p .minecraft
mv -vf {config,defaultconfigs,kubejs,mods} .minecraft/
mv -vf .github/buildtools/modpack/mmc-pack.json ./
mv -vf .github/buildtools/modpack/instance.cfg ./
zip -r ${{ needs.modpack-info.outputs.project_name }}-${{ needs.modpack-info.outputs.project_version }}-mmc.zip mmc-pack.json instance.cfg .minecraft/
- name: Upload zip mmc
uses: actions/upload-artifact@v4.0.0
with:
name: ${{ needs.modpack-info.outputs.project_name }}-${{ needs.modpack-info.outputs.project_version }}-mmc
path: ${{ needs.modpack-info.outputs.project_name }}-${{ needs.modpack-info.outputs.project_version }}-mmc.zip
retention-days: 5
build-serverpack:
name: Build Serverpack
runs-on: ubuntu-latest
needs: [modpack-info]
steps:
- name: Checkout
uses: actions/checkout@v4.1.1
- name: Replace strings
shell: bash
run: |
VERSION=${{ needs.modpack-info.outputs.project_version }}
sed -i -e "s/DEV/${VERSION}/g" config/bcc-common.toml
- name: Download Mods
run: |
git submodule init
cd mods
git config --global credential.helper '!f() {
echo "username=Xikaro";
echo "password=${{ secrets.USER_TOKEN_XIKARO }}"; }; f'
git submodule update --recursive
- name: Export serverpack
run: |
mkdir -p .minecraft
mv -vf {config,defaultconfigs,kubejs,mods,.github/buildtools/serverpack/*} .minecraft
cat .github/buildtools/client_mod.txt | while read -r line; do find .minecraft/mods -name "$line" -delete; done
zip -r ${{ needs.modpack-info.outputs.project_name }}-${{ needs.modpack-info.outputs.project_version }}-server.zip .minecraft/*
- name: Upload zip
uses: actions/upload-artifact@v4.0.0
with:
name: ${{ needs.modpack-info.outputs.project_name }}-${{ needs.modpack-info.outputs.project_version }}-server
path: ${{ needs.modpack-info.outputs.project_name }}-${{ needs.modpack-info.outputs.project_version }}-server.zip
retention-days: 5
release:
name: Release
needs: [modpack-info, build-cf-modpack, build-mmc-modpack, build-serverpack]
if: startsWith(github.ref, 'refs/tags/')
uses: ./.github/workflows/release.yml
with:
project_name: ${{ needs.modpack-info.outputs.project_name }}
project_version: ${{ needs.modpack-info.outputs.project_version }}
mc_version: ${{ needs.modpack-info.outputs.mc_version }}
changelog: ${{ needs.modpack-info.outputs.changelog }}
secrets: inherit