Skip to content

feat: added fabric support #4

feat: added fabric support

feat: added fabric support #4

Workflow file for this run

name: E2E Tests
permissions:
contents: read
on:
pull_request:
push:
branches:
- master
workflow_dispatch:
jobs:
e2e-bukkit:
runs-on: ubuntu-latest
name: E2E - Bukkit
steps:
- uses: actions/checkout@v4
- uses: actions/checkout@v4
with:
repository: BanManagement/BanManager
path: BanManager
ref: master
- name: Set up JDK 21
uses: actions/setup-java@v4
with:
java-version: 21
distribution: "temurin"
- name: Setup Gradle
uses: gradle/actions/setup-gradle@v4
with:
cache-read-only: ${{ github.ref != 'refs/heads/master' }}
- name: Set up Docker Buildx
uses: docker/setup-buildx-action@v3
- 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-
- 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
- name: Move Docker cache
run: |
rm -rf /tmp/.buildx-cache
mv /tmp/.buildx-cache-new /tmp/.buildx-cache
- name: Publish BanManager to mavenLocal
working-directory: BanManager
run: |
./gradlew :BanManagerCommon:publishToMavenLocal :BanManagerLibs:publishToMavenLocal \
:BanManagerBukkit:publishToMavenLocal --build-cache
- name: Build BanManager Bukkit
working-directory: BanManager
run: ./gradlew :BanManagerBukkit:shadowJar --build-cache
- name: Build WebEnhancer Bukkit
run: ./gradlew :BanManagerWebEnhancerBukkit:shadowJar --build-cache
- name: Run E2E tests
run: ./gradlew :BanManagerWebEnhancerE2E:testBukkit
timeout-minutes: 15
- name: Collect logs on failure
if: failure()
working-directory: e2e/platforms/bukkit
run: |
docker compose logs > ../../e2e-logs-bukkit.txt 2>&1 || true
- name: Upload logs on failure
if: failure()
uses: actions/upload-artifact@v4
with:
name: e2e-logs-bukkit
path: e2e-logs-bukkit.txt
retention-days: 7
- name: Cleanup
if: always()
working-directory: e2e/platforms/bukkit
run: docker compose down -v || true
e2e-fabric:
runs-on: ubuntu-latest
name: E2E - Fabric-${{ matrix.mc_version }}
strategy:
fail-fast: false
matrix:
include:
- mc_version: "1.20.1"
task_suffix: "1_20_1"
java_image: "java17"
fabric_loader: "0.16.10"
- mc_version: "1.21.1"
task_suffix: "1_21_1"
java_image: "java21"
fabric_loader: "0.16.9"
- mc_version: "1.21.4"
task_suffix: "1_21_4"
java_image: "java21"
fabric_loader: "0.16.9"
steps:
- uses: actions/checkout@v4
- uses: actions/checkout@v4
with:
repository: BanManagement/BanManager
path: BanManager
ref: master
- name: Set up JDK 21
uses: actions/setup-java@v4
with:
java-version: 21
distribution: "temurin"
- name: Set up JDK 17
uses: actions/setup-java@v4
with:
java-version: 17
distribution: "temurin"
- 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-
- name: Set up Docker Buildx
uses: docker/setup-buildx-action@v3
- 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-
- 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
- name: Move Docker cache
run: |
rm -rf /tmp/.buildx-cache
mv /tmp/.buildx-cache-new /tmp/.buildx-cache
- name: Publish BanManager to mavenLocal
working-directory: BanManager
run: |
./gradlew :BanManagerCommon:publishToMavenLocal :BanManagerLibs:publishToMavenLocal \
:fabric:${{ matrix.mc_version }}:publishToMavenLocal --build-cache
- name: Build BanManager Fabric
working-directory: BanManager
run: ./gradlew :fabric:${{ matrix.mc_version }}:remapJar --build-cache
- name: Build WebEnhancer Fabric
run: ./gradlew :fabric:${{ matrix.mc_version }}:remapJar --build-cache
- name: Run E2E tests
run: ./gradlew :BanManagerWebEnhancerE2E:testFabric_${{ matrix.task_suffix }}
timeout-minutes: 15
env:
MC_VERSION: ${{ matrix.mc_version }}
JAVA_IMAGE: ${{ matrix.java_image }}
FABRIC_LOADER: ${{ matrix.fabric_loader }}
- name: Collect logs on failure
if: failure()
working-directory: e2e/platforms/fabric
run: |
docker compose logs > ../../e2e-logs-${{ matrix.mc_version }}.txt 2>&1 || true
env:
MC_VERSION: ${{ matrix.mc_version }}
JAVA_IMAGE: ${{ matrix.java_image }}
FABRIC_LOADER: ${{ matrix.fabric_loader }}
- name: Upload logs on failure
if: failure()
uses: actions/upload-artifact@v4
with:
name: e2e-logs-${{ matrix.mc_version }}
path: e2e-logs-${{ matrix.mc_version }}.txt
retention-days: 7
- name: Cleanup
if: always()
working-directory: e2e/platforms/fabric
run: docker compose down -v || true
env:
MC_VERSION: ${{ matrix.mc_version }}
JAVA_IMAGE: ${{ matrix.java_image }}
FABRIC_LOADER: ${{ matrix.fabric_loader }}