Skip to content

do things better, I think #8

do things better, I think

do things better, I think #8

Workflow file for this run

name: Build and test
on:
push:
branches:
- '*'
pull_request:
workflow_call:
inputs:
skip_tests:
type: boolean
required: true
default: false
workflow_dispatch:
permissions:
contents: read
jobs:
build-mod:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v4
- uses: actions/setup-java@v4
with:
distribution: temurin
java-version: 17
- uses: gradle/actions/setup-gradle@v4
- name: Build
env:
RELEASE: true
run: ./gradlew build
- name: Upload artifacts
uses: actions/upload-artifact@v4
with:
name: mod-build
path: build/libs
if-no-files-found: error
test-mod:
if: inputs.skip_tests != true
needs: build-mod
strategy:
fail-fast: false
matrix:
env:
- server
- client
mods:
- dry
- optionals
include:
- mods: optionals
dependencies: >-
'https://mediafilez.forgecdn.net/files/7096/71/appliedenergistics2-forge-15.4.9.jar'
'https://mediafilez.forgecdn.net/files/7127/447/guideme-20.1.14.jar'
'https://mediafilez.forgecdn.net/files/7370/945/packages-1.20.1-forge-2025.12.23.jar'
'https://mediafilez.forgecdn.net/files/7191/176/ImmersivePetroleum-1.20.1-4.3.0-30.jar'
'https://mediafilez.forgecdn.net/files/6206/989/ImmersiveEngineering-1.20.1-10.2.0-183.jar'
'https://mediafilez.forgecdn.net/files/7116/643/sophisticatedbackpacks-1.20.1-3.24.10.1404.jar'
'https://mediafilez.forgecdn.net/files/7077/1/sophisticatedcore-1.20.1-1.2.105.1230.jar'
'https://mediafilez.forgecdn.net/files/6552/911/Mekanism-1.20.1-10.4.16.80.jar'
- mods: dry
dependencies: ""
runs-on: ubuntu-latest
steps:
- uses: actions/setup-java@v4
with:
distribution: temurin
java-version: 17
- run: mkdir -p run/mods
- name: Create cache key
run: |
cat <<END_OF_FILE > dependencies.txt
${{ matrix.dependencies }}
END_OF_FILE
- name: Cache dependencies
id: cache
uses: actions/cache@v4
with:
path: run/mods
key: ${{ hashFiles('dependencies.txt') }}
- name: Download dependencies
if: steps.cache.outputs.cache-hit != 'true'
run: |
for url in ${{ matrix.dependencies }}; do
wget --directory-prefix=run/mods/ "$url"
done
- name: Download build artifacts
uses: actions/download-artifact@v4
with:
name: mod-build
path: build/ciArtifacts/
- name: Prepare mod jar
run: |
cp build/ciArtifacts/*-all.jar run/mods
- name: Run MC test client
if: matrix.env == 'client'
timeout-minutes: 10
uses: headlesshq/mc-runtime-test@3.1.1
with:
java: 17
mc: 1.20.1
modloader: forge
regex: '.*forge.*'
fabric-api: none
mc-runtime-test: lexforge
- name: Run MC test server
if: matrix.env == 'server'
timeout-minutes: 10 # see above
uses: headlesshq/mc-server-test@1.0.0
with:
java: 17
mc: 1.20.1
modloader: forge
fabric-api: none