Free NeoForge 1.21.1 modpack on Cobblemon 1.8.4 built with packwiz, plus the Kotlin companion mod (cobblesurvival) and its built-in data pack. - Phase 0: packwiz pack with Modrinth/CurseForge cross-links, build and export tooling, Prism instance sync, test server with smoke checks. - Phase 1: Poke Ball shaped island (WorldGen Editor preset, seed isle-26), Adrian's biome list, no natural ore, structures without ore or vanilla mobs, no Nether portals, world template builder and world report. - Phase 2: permadeath (CobbleHardcoreMon plus the companion mod's gap fixes), Revival Charm, expensive Healing Machine, Lootr refreshing loot, in-game self-tests on Minecraft's GameTest framework. - Phase 3 so far: 14 zones with their own spawn pools and level bands (tools/zone_layout.py, tools/zone_spawns.py, "zone" spawn condition), Cold Sweat heat and cold as gates with boss-drop insulation recipes, spawn survey and hazard self-tests in tools/quick_check.py. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
59 lines
1.7 KiB
YAML
59 lines
1.7 KiB
YAML
name: CI
|
|
|
|
on:
|
|
push:
|
|
pull_request:
|
|
workflow_dispatch:
|
|
|
|
jobs:
|
|
build-and-smoke-test:
|
|
runs-on: ubuntu-latest
|
|
timeout-minutes: 45
|
|
steps:
|
|
- uses: actions/checkout@v4
|
|
|
|
- uses: actions/setup-java@v4
|
|
with:
|
|
distribution: temurin
|
|
java-version: "21"
|
|
|
|
- uses: actions/setup-go@v5
|
|
with:
|
|
go-version: "1.25"
|
|
|
|
- name: Install packwiz
|
|
# packwiz has no tagged releases; pin a commit when one is known good.
|
|
run: go install github.com/packwiz/packwiz@latest
|
|
|
|
- uses: actions/setup-python@v5
|
|
with:
|
|
python-version: "3.12"
|
|
|
|
- name: Python packages for the world checks
|
|
run: pip install numpy
|
|
|
|
- name: Build companion mod and export both pack formats
|
|
run: python3 tools/build.py
|
|
|
|
# Booting the server needs eula=true. Set the repository variable
|
|
# MINECRAFT_EULA_ACCEPTED to "true" only if you accept the Minecraft EULA
|
|
# (https://aka.ms/MinecraftEULA) for this CI server. Until then CI runs
|
|
# the mod discovery + dependency check, which needs no EULA.
|
|
- name: Quick check (smoke checks + sampled world)
|
|
if: vars.MINECRAFT_EULA_ACCEPTED == 'true'
|
|
run: python3 tools/quick_check.py --accept-eula
|
|
|
|
- name: Mod discovery and dependency check (no EULA)
|
|
if: vars.MINECRAFT_EULA_ACCEPTED != 'true'
|
|
run: python3 tools/smoke_test.py --load-only
|
|
|
|
- uses: actions/upload-artifact@v4
|
|
if: always()
|
|
with:
|
|
name: pack-exports
|
|
path: |
|
|
build/*.mrpack
|
|
build/*-curseforge.zip
|
|
build/server/logs/latest.log
|
|
if-no-files-found: ignore
|