Skip to content

Add global livability heat map (65–74°F + low mosquitoes) #7

Add global livability heat map (65–74°F + low mosquitoes)

Add global livability heat map (65–74°F + low mosquitoes) #7

Workflow file for this run

name: Mod CI
on:
push:
branches: [main]
pull_request:
branches: [main]
permissions:
contents: read
jobs:
validate:
runs-on: ubuntu-latest
defaults:
run:
working-directory: mod
steps:
- uses: actions/checkout@v4
- name: Set up Java
uses: actions/setup-java@v4
with:
distribution: temurin
java-version: "21"
- name: Set up Gradle
uses: gradle/actions/setup-gradle@v4
with:
gradle-version: "8.10.2"
- name: Validate matrix and run common tests
run: |
chmod +x ./gradlew
./gradlew validateModMatrix :common:test --stacktrace --info
- name: Upload Gradle reports
if: failure()
uses: actions/upload-artifact@v4
with:
name: mod-validate-gradle-reports
path: |
mod/**/build/reports/**
mod/**/build/test-results/**
build:
runs-on: ubuntu-latest
needs: validate
strategy:
fail-fast: false
matrix:
include:
- minecraft-version: "1.21.2"
loader: fabric
- minecraft-version: "1.21.2"
loader: neoforge
- minecraft-version: "1.21.4"
loader: fabric
- minecraft-version: "1.21.4"
loader: forge
- minecraft-version: "1.21.4"
loader: neoforge
- minecraft-version: "1.21.5"
loader: fabric
- minecraft-version: "1.21.5"
loader: forge
- minecraft-version: "1.21.5"
loader: neoforge
- minecraft-version: "1.21.6"
loader: fabric
- minecraft-version: "1.21.6"
loader: forge
- minecraft-version: "1.21.6"
loader: neoforge
- minecraft-version: "1.21.7"
loader: fabric
- minecraft-version: "1.21.7"
loader: forge
- minecraft-version: "1.21.7"
loader: neoforge
- minecraft-version: "1.21.8"
loader: fabric
- minecraft-version: "1.21.8"
loader: forge
- minecraft-version: "1.21.8"
loader: neoforge
- minecraft-version: "1.21.9"
loader: fabric
- minecraft-version: "1.21.9"
loader: forge
- minecraft-version: "1.21.9"
loader: neoforge
- minecraft-version: "1.21.10"
loader: fabric
- minecraft-version: "1.21.10"
loader: forge
- minecraft-version: "1.21.10"
loader: neoforge
- minecraft-version: "1.21.11"
loader: fabric
- minecraft-version: "1.21.11"
loader: forge
- minecraft-version: "1.21.11"
loader: neoforge
defaults:
run:
working-directory: mod
steps:
- uses: actions/checkout@v4
- name: Set up Java
uses: actions/setup-java@v4
with:
distribution: temurin
java-version: "21"
- name: Set up Gradle
uses: gradle/actions/setup-gradle@v4
with:
gradle-version: "8.10.2"
- name: Build matrix project
id: build
env:
MINECRAFT_VERSION: ${{ matrix.minecraft-version }}
LOADER: ${{ matrix.loader }}
run: |
chmod +x ./gradlew
set -o pipefail
VERSION_KEY="${MINECRAFT_VERSION//./_}"
TASK=":versions:mc_${VERSION_KEY}:${LOADER}:build"
LOG_FILE="build-${MINECRAFT_VERSION}-${LOADER}.log"
echo "Building ${TASK}"
./gradlew "${TASK}" --stacktrace --info 2>&1 | tee "${LOG_FILE}"
echo "log_file=${LOG_FILE}" >> "${GITHUB_OUTPUT}"
- name: Write failure summary
if: failure()
env:
MINECRAFT_VERSION: ${{ matrix.minecraft-version }}
LOADER: ${{ matrix.loader }}
run: |
LOG_FILE="${{ steps.build.outputs.log_file }}"
VERSION_KEY="${MINECRAFT_VERSION//./_}"
{
echo "### Mod build failed: ${LOADER} / ${MINECRAFT_VERSION}"
echo ""
echo "**Gradle task:** \`:versions:mc_${VERSION_KEY}:${LOADER}:build\`"
echo ""
if [ -f "${LOG_FILE}" ]; then
echo "#### Error highlights"
echo '```text'
grep -E "FAILURE:|What went wrong:|Execution failed for task|error:|Caused by:|> Could not|BUILD FAILED" "${LOG_FILE}" | tail -n 40 || true
echo '```'
echo ""
echo "#### Last 120 log lines"
echo '```text'
tail -n 120 "${LOG_FILE}"
echo '```'
else
echo "No build log was captured."
fi
} >> "${GITHUB_STEP_SUMMARY}"
- name: Upload Gradle reports
if: failure()
uses: actions/upload-artifact@v4
with:
name: mod-${{ matrix.minecraft-version }}-${{ matrix.loader }}-gradle-reports
path: |
mod/**/build/reports/**
mod/**/build/test-results/**
mod/**/build/tmp/**
mod/build-*.log
summary:
runs-on: ubuntu-latest
needs: [validate, build]
if: always()
steps:
- name: Report overall mod CI status
run: |
{
echo "### Mod CI summary"
echo ""
echo "- validate: ${{ needs.validate.result }}"
echo "- build matrix: ${{ needs.build.result }}"
} >> "${GITHUB_STEP_SUMMARY}"
if [ "${{ needs.validate.result }}" != "success" ] || [ "${{ needs.build.result }}" != "success" ]; then
echo "One or more mod CI jobs failed. Open the failed matrix job for the detailed Gradle log summary."
exit 1
fi