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