Skip to content

feat: add RGB hex color support (&#rrggbb) in messages.yml #62

feat: add RGB hex color support (&#rrggbb) in messages.yml

feat: add RGB hex color support (&#rrggbb) in messages.yml #62

Workflow file for this run

name: E2E Tests
permissions:
contents: read
on:
pull_request:
push:
branches:
- master
workflow_dispatch: # Allow manual triggering
jobs:
e2e:
runs-on: ubuntu-latest
name: E2E - ${{ matrix.platform }}
strategy:
fail-fast: false
matrix:
include:
# Bukkit/Paper
- platform: Bukkit
task: testBukkit
build_task: ":BanManagerBukkit:shadowJar"
compose_dir: platforms/bukkit
# Fabric 1.20.1 (legacy modded, Java 17)
- platform: Fabric-1.20.1
task: testFabric_1_20_1
build_task: ":fabric:1.20.1:remapJar"
compose_dir: platforms/fabric
mc_version: "1.20.1"
java_image: "java17"
fabric_loader: "0.16.10"
# Fabric 1.21.1 (stable 1.21, Java 21)
- platform: Fabric-1.21.1
task: testFabric_1_21_1
build_task: ":fabric:1.21.1:remapJar"
compose_dir: platforms/fabric
mc_version: "1.21.1"
java_image: "java21"
fabric_loader: "0.16.9"
# Fabric 1.21.4 (current latest, Java 21)
- platform: Fabric-1.21.4
task: testFabric_1_21_4
build_task: ":fabric:1.21.4:remapJar"
compose_dir: platforms/fabric
mc_version: "1.21.4"
java_image: "java21"
fabric_loader: "0.16.9"
# Sponge API 11 (MC 1.20.6, Java 21)
- platform: Sponge-1.20.6
task: testSponge_1_20_6
build_task: ":BanManagerSponge:shadowJar"
compose_dir: platforms/sponge
mc_version: "1.20.6"
java_image: "java21"
spongeversion: "1.20.6-11.0.0"
# Sponge API 12 (MC 1.21.1, Java 21)
- platform: Sponge-1.21.1
task: testSponge_1_21_1
build_task: ":BanManagerSponge:shadowJar"
compose_dir: platforms/sponge
mc_version: "1.21.1"
java_image: "java21"
spongeversion: "1.21.1-12.0.2"
# Sponge API 13 (MC 1.21.3, Java 21)
- platform: Sponge-1.21.3
task: testSponge_1_21_3
build_task: ":BanManagerSponge:shadowJar"
compose_dir: platforms/sponge
mc_version: "1.21.3"
java_image: "java21"
spongeversion: "1.21.3-13.0.0"
# Sponge API 7 (Legacy - MC 1.12.2, Java 8)
- platform: Sponge7-1.12.2
task: testSponge7
build_task: ":BanManagerSponge7:shadowJar"
compose_dir: platforms/sponge7
mc_version: "1.12.2"
java_image: "java8"
# Velocity Proxy
- platform: Velocity
task: testVelocity
build_task: ":BanManagerVelocity:shadowJar"
compose_dir: platforms/velocity
# BungeeCord Proxy
- platform: BungeeCord
task: testBungee
build_task: ":BanManagerBungee:shadowJar"
compose_dir: platforms/bungee
steps:
- uses: actions/checkout@v4
- name: Set up JDK 21
uses: actions/setup-java@v4
with:
java-version: 21
distribution: "temurin"
# Also set up JDK 17 for Fabric 1.20.x builds
- name: Set up JDK 17
uses: actions/setup-java@v4
with:
java-version: 17
distribution: "temurin"
# Ensure JDK 21 is the default
- name: Set JDK 21 as default
run: echo "JAVA_HOME=$JAVA_HOME_21_X64" >> $GITHUB_ENV
- name: Setup Gradle
uses: gradle/actions/setup-gradle@v4
with:
cache-read-only: ${{ github.ref != 'refs/heads/master' }}
- uses: actions/cache@v4
with:
path: |
.gradle/loom-cache
key: ${{ runner.os }}-loom-${{ hashFiles('**/libs.versions.*', '**/*.gradle*', '**/gradle-wrapper.properties') }}
restore-keys: ${{ runner.os }}-loom-
# Docker Buildx for better caching
- name: Set up Docker Buildx
uses: docker/setup-buildx-action@v3
# Cache Docker layers for test runner image
- name: Cache Docker layers
uses: actions/cache@v4
with:
path: /tmp/.buildx-cache
key: ${{ runner.os }}-docker-e2e-${{ hashFiles('e2e/Dockerfile.tests', 'e2e/tests/package*.json') }}
restore-keys: |
${{ runner.os }}-docker-e2e-
# Pre-build the test runner image with cache
- name: Build test runner image
uses: docker/build-push-action@v5
with:
context: e2e
file: e2e/Dockerfile.tests
push: false
load: true
tags: e2e-tests:latest
cache-from: type=local,src=/tmp/.buildx-cache
cache-to: type=local,dest=/tmp/.buildx-cache-new,mode=max
# Move cache to avoid ever-growing cache
- name: Move Docker cache
run: |
rm -rf /tmp/.buildx-cache
mv /tmp/.buildx-cache-new /tmp/.buildx-cache
- name: Build plugin JARs
run: ./gradlew ${{ matrix.build_task }} --build-cache
- name: Run E2E tests
run: ./gradlew :BanManagerE2E:${{ matrix.task }}
timeout-minutes: 15
env:
MC_VERSION: ${{ matrix.mc_version }}
JAVA_IMAGE: ${{ matrix.java_image }}
FABRIC_LOADER: ${{ matrix.fabric_loader }}
SPONGEVERSION: ${{ matrix.spongeversion }}
- name: Collect logs on failure
if: failure()
working-directory: e2e/${{ matrix.compose_dir }}
run: |
docker compose logs > ../../e2e-logs-${{ matrix.platform }}.txt 2>&1 || true
env:
MC_VERSION: ${{ matrix.mc_version }}
JAVA_IMAGE: ${{ matrix.java_image }}
FABRIC_LOADER: ${{ matrix.fabric_loader }}
SPONGEVERSION: ${{ matrix.spongeversion }}
- name: Upload logs on failure
if: failure()
uses: actions/upload-artifact@v4
with:
name: e2e-logs-${{ matrix.platform }}
path: e2e-logs-${{ matrix.platform }}.txt
retention-days: 7
- name: Cleanup
if: always()
working-directory: e2e/${{ matrix.compose_dir }}
run: docker compose down -v || true
env:
MC_VERSION: ${{ matrix.mc_version }}
JAVA_IMAGE: ${{ matrix.java_image }}
FABRIC_LOADER: ${{ matrix.fabric_loader }}
SPONGEVERSION: ${{ matrix.spongeversion }}