Build #11
Workflow file for this run
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 | |
run-name: Build #${{ github.run_number }} by @${{ github.actor }} | |
env: | |
RELEASE_TYPE: "release" | |
MC_VERSION: "1.12.2" | |
on: | |
push: | |
# tags: | |
# - "*.*.*" | |
concurrency: | |
group: ${{ github.ref }} | |
cancel-in-progress: true | |
jobs: | |
info: | |
name: Project Info | |
runs-on: ubuntu-latest | |
outputs: | |
project_version: ${{ steps.project_version.outputs.tag }} | |
project_name: ${{ steps.project_name.outputs.value }} | |
changelog: ${{ steps.changelog.outputs.description }} | |
diff: ${{ steps.diff.outputs.description }} | |
release_type: ${{ env.RELEASE_TYPE }} | |
mc_version: ${{ env.MC_VERSION }} | |
steps: | |
- name: Checkout | |
uses: actions/[email protected] | |
- name: Check lockfile | |
shell: bash | |
run: | | |
set +e | |
echo "🔎 Getting modpack info..." | |
if [ ! -f pakku-lock.json ]; then | |
echo "::error::Could not find pakku-lock.json" && exit 1 | |
else | |
echo "✔️ pakku-lock.json" | |
fi | |
if [ ! -f pakku.json ]; then | |
echo "::error::Could not find pakku.json" && exit 1 | |
else | |
echo "✔️ pakku.json" | |
fi | |
- name: Get previous lockfile | |
shell: bash | |
run: | | |
set +e | |
echo "🔎 Getting previous lockfile..." | |
if [ "$latest_tag" = ${{ github.ref_name }} ]; then | |
latest_tag_prev=$(git describe --tags --abbrev=0 $(git describe --tags --abbrev=0)^) | |
latest_tagged_commit=$(git rev-list -n 1 --pretty=format:"%h" $latest_tag_prev | sed -n 2p) | |
if git cat-file -e $latest_tagged_commit:./pakku-lock.json; then | |
git show $latest_tagged_commit:./pakku-lock.json > ./pakku-lock-prev.json | |
java -jar ./pakku.jar diff ./pakku-lock-prev.json ./pakku-lock.json -v --markdown PROJECTS_DIFF.md | |
else | |
echo "❌ File pakku-lock.json not found in previous tag" | |
fi | |
fi | |
- name: Get Project Name | |
id: project_name | |
uses: ActionsTools/[email protected] | |
with: | |
file_path: "pakku.json" | |
prop_path: "name" | |
- name: Get Project Version | |
id: project_version | |
uses: "WyriHaximus/[email protected]" | |
with: | |
fallback: build.${{ github.run_number }} | |
- name: Changelog Parser | |
id: changelog | |
uses: coditory/[email protected] | |
with: | |
path: CHANGELOG.md | |
- name: Diff Mod | |
id: diff | |
run: | | |
if [ ! -f PROJECTS_DIFF.md ]; then | |
touch PROJECTS_DIFF.md | |
fi | |
cat PROJECTS_DIFF.md | |
- name: Generate list using Markdown | |
run: | | |
echo "📃 Project Name=${{ steps.project_name.outputs.value }}" >> $GITHUB_STEP_SUMMARY | |
echo "📃 Project Version=${{ steps.project_version.outputs.tag }}" >> $GITHUB_STEP_SUMMARY | |
echo "📃 MC Versions=${{ env.MC_VERSION }}" >> $GITHUB_STEP_SUMMARY | |
echo "📃 Release Type=${{ env.RELEASE_TYPE }}" >> $GITHUB_STEP_SUMMARY | |
echo "${{ steps.changelog.outputs.description }}" >> $GITHUB_STEP_SUMMARY | |
echo "${{ steps.diff.outputs.value }}" >> $GITHUB_STEP_SUMMARY | |
build-modpack: | |
name: Build Modpack | |
runs-on: ubuntu-latest | |
needs: [info] | |
steps: | |
- name: Checkout | |
uses: actions/[email protected] | |
- name: Set GroovyScript debug mode to 'false' | |
shell: bash | |
run: | | |
set +e | |
grooovy="./groovy/runConfig.json" | |
cat <<< $(jq '.debug = false' $grooovy) > $grooovy | |
- name: Cache pakku | |
uses: actions/[email protected] | |
with: | |
path: build/.cache | |
key: ${{ runner.OS }}-pakku-cache-${{ hashFiles('build/.cache/') }} | |
restore-keys: | | |
${{ runner.OS }}-pakku-cache- | |
- name: Export modpack | |
run: | | |
java -jar ./pakku.jar --debug export | |
- name: Rename artifact curseforge | |
run: | | |
cd ./build/curseforge/ | |
ls | |
mv *.zip $(basename -s .zip *.zip)-curseforge.zip | |
- run: ls R | |
- name: Upload artifact CurseForge | |
uses: actions/[email protected] | |
with: | |
name: ${{ needs.info.outputs.project_name }}-${{ needs.info.outputs.project_version }}-curseforge | |
path: ./build/curseforge/${{ needs.info.outputs.project_name }}-${{ needs.info.outputs.project_version }}-curseforge.zip | |
if-no-files-found: error | |
- name: Rename artifact server | |
run: | | |
cd ./build/serverpack/ | |
ls | |
mv *.zip $(basename -s .zip *.zip)-serverpack.zip | |
- name: Upload artifact server | |
uses: actions/[email protected] | |
with: | |
name: ${{ needs.info.outputs.project_name }}-${{ needs.info.outputs.project_version }}-serverpack | |
path: ./build/serverpack/${{ needs.info.outputs.project_name }}-${{ needs.info.outputs.project_version }}-serverpack.zip | |
if-no-files-found: error | |
- name: Rename artifact modrinth | |
run: | | |
cd ./build/modrinth/ | |
ls | |
mv *.zip $(basename -s .mrpack *.mrpack)-modrinth.mrpack | |
- name: Upload artifact modrinth | |
uses: actions/[email protected] | |
with: | |
name: ${{ needs.info.outputs.project_name }}-${{ needs.info.outputs.project_version }}-modrinth | |
path: ./build/modrinth/${{ needs.info.outputs.project_name }}-${{ needs.info.outputs.project_version }}-modrinth.mrpack | |
if-no-files-found: error | |
build-multimc: | |
name: Build MultiMC Pack | |
runs-on: ubuntu-latest | |
needs: [info] | |
steps: | |
- name: Checkout | |
uses: actions/[email protected] | |
- name: Set GroovyScript debug mode to 'false' | |
shell: bash | |
run: | | |
set +e | |
grooovy="./groovy/runConfig.json" | |
cat <<< $(jq '.debug = false' $grooovy) > $grooovy | |
- name: Cache pakku | |
uses: actions/[email protected] | |
with: | |
path: build/.cache | |
key: ${{ runner.OS }}-pakku-cache-${{ hashFiles('build/.cache/') }} | |
restore-keys: | | |
${{ runner.OS }}-pakku-cache- | |
- name: Export | |
run: | | |
java -jar pakku.jar --debug export | |
java -jar pakku.jar --debug fetch | |
- name: Move files | |
run: | | |
mv -vf ./build/.cache/curseforge/* ./.pakku/multimc-overrides/ | |
cd ./.pakku/multimc-overrides/ | |
mkdir -p flame | |
# mv -vf manifest.json flame/ | |
cd ./.pakku/multimc-overrides/ | |
zip -r ${{ needs.info.outputs.project_name }}-${{ needs.info.outputs.project_version }}-multimc.zip icon.png mmc-pack.json instance.cfg .minecraft/ flame/ | |
- name: Upload zip multimc | |
uses: actions/[email protected] | |
with: | |
name: ${{ needs.info.outputs.project_name }}-${{ needs.info.outputs.project_version }}-multimc | |
path: ./.pakku/multimc-overrides/${{ needs.info.outputs.project_name }}-${{ needs.info.outputs.project_version }}-multimc.zip | |
if-no-files-found: error | |
# release: | |
# name: Release | |
# needs: [info, build-multimc, build-server] | |
# if: startsWith(github.ref, 'refs/tags/') | |
# uses: ./.github/workflows/release.yml | |
# with: | |
# project_name: ${{ needs.info.outputs.project_name }} | |
# project_version: ${{ needs.info.outputs.project_version }} | |
# mc_version: ${{ needs.info.outputs.mc_version }} | |
# release_type: ${{ needs.info.outputs.release_type }} | |
# changelog: ${{ needs.info.outputs.changelog }} | |
# secrets: inherit |