diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml
index e0bc7d3..a42299c 100644
--- a/.github/workflows/ci.yml
+++ b/.github/workflows/ci.yml
@@ -4,6 +4,10 @@ on:
pull_request:
branches: [ v2.x, v3.x ]
+permissions:
+ contents: read
+ id-token: write
+
jobs:
unit-tests:
name: Unit tests
@@ -28,7 +32,15 @@ jobs:
cd /tmp/MockBukkit && ./gradlew publishToMavenLocal -xtest -xjavadoc
- name: Run unit tests
- run: mvn -B -ntp -Dmockbukkit.version="$MOCKBUKKIT_VERSION" test
+ run: mvn -B -ntp -Dmockbukkit.version="$MOCKBUKKIT_VERSION" org.jacoco:jacoco-maven-plugin:0.8.14:prepare-agent test org.jacoco:jacoco-maven-plugin:0.8.14:report
+
+ - name: Upload unit test coverage to Codecov
+ uses: codecov/codecov-action@v5
+ with:
+ use_oidc: true
+ files: ./target/site/jacoco/jacoco.xml
+ flags: unit
+ name: unit-tests
feature-tests:
name: Feature tests
@@ -54,7 +66,15 @@ jobs:
cd /tmp/MockBukkit && ./gradlew publishToMavenLocal -xtest -xjavadoc
- name: Run feature tests
- run: mvn -B -ntp -Pfeature-tests -Dtest=*FeatureTest -Dmockbukkit.version="$MOCKBUKKIT_VERSION" test
+ run: mvn -B -ntp -Pfeature-tests -Dtest=*FeatureTest -Dmockbukkit.version="$MOCKBUKKIT_VERSION" org.jacoco:jacoco-maven-plugin:0.8.14:prepare-agent test org.jacoco:jacoco-maven-plugin:0.8.14:report
+
+ - name: Upload feature test coverage to Codecov
+ uses: codecov/codecov-action@v5
+ with:
+ use_oidc: true
+ files: ./target/site/jacoco/jacoco.xml
+ flags: feature
+ name: feature-tests
# ──────────────────────────────────────────────────────────────────────────
# SMOKE TESTS — verify EzAfk loads without errors on each server platform.
@@ -143,6 +163,16 @@ jobs:
fi
done
kill $SERVER_PID 2>/dev/null || true
+ for _ in $(seq 1 15); do
+ if ! kill -0 $SERVER_PID 2>/dev/null; then
+ break
+ fi
+ sleep 1
+ done
+ if kill -0 $SERVER_PID 2>/dev/null; then
+ echo "Server did not stop after SIGTERM; forcing shutdown"
+ kill -9 $SERVER_PID 2>/dev/null || true
+ fi
wait $SERVER_PID 2>/dev/null || true
- name: Assert no EzAfk errors
@@ -235,6 +265,16 @@ jobs:
fi
done
kill $SERVER_PID 2>/dev/null || true
+ for _ in $(seq 1 15); do
+ if ! kill -0 $SERVER_PID 2>/dev/null; then
+ break
+ fi
+ sleep 1
+ done
+ if kill -0 $SERVER_PID 2>/dev/null; then
+ echo "Server did not stop after SIGTERM; forcing shutdown"
+ kill -9 $SERVER_PID 2>/dev/null || true
+ fi
wait $SERVER_PID 2>/dev/null || true
- name: Assert no EzAfk errors
@@ -327,6 +367,16 @@ jobs:
fi
done
kill $SERVER_PID 2>/dev/null || true
+ for _ in $(seq 1 15); do
+ if ! kill -0 $SERVER_PID 2>/dev/null; then
+ break
+ fi
+ sleep 1
+ done
+ if kill -0 $SERVER_PID 2>/dev/null; then
+ echo "Server did not stop after SIGTERM; forcing shutdown"
+ kill -9 $SERVER_PID 2>/dev/null || true
+ fi
wait $SERVER_PID 2>/dev/null || true
- name: Assert no EzAfk errors
diff --git a/.mvn/maven.config b/.mvn/maven.config
new file mode 100644
index 0000000..4961335
--- /dev/null
+++ b/.mvn/maven.config
@@ -0,0 +1 @@
+-Dmockbukkit.version=4.113.1
diff --git a/pom.xml b/pom.xml
index 9a91610..ba8fe37 100644
--- a/pom.xml
+++ b/pom.xml
@@ -15,6 +15,9 @@
26.1.2.build.57-stable
3.1.0
7.0.13
+ 26.0.2-1
+ 2.41.0
+ 2.25.2
3.15.0
3.6.2
1.3.2
@@ -64,8 +67,62 @@
paper-api
${paper.version}
provided
+
+
+ com.google.code.gson
+ gson
+
+
+ org.apache.commons
+ commons-lang3
+
+
+ org.slf4j
+ slf4j-api
+
+
+ org.jetbrains
+ annotations
+
+
+
+ com.google.code.gson
+ gson
+ 2.11.0
+ provided
+
+
+ com.google.errorprone
+ error_prone_annotations
+
+
+
+
+ com.google.errorprone
+ error_prone_annotations
+ ${errorprone.annotations.version}
+ provided
+
+
+ org.jetbrains
+ annotations
+ ${jetbrains.annotations.version}
+ provided
+
+
+ org.apache.logging.log4j
+ log4j-api
+ ${log4j.api.version}
+ provided
+
+
+ org.slf4j
+ slf4j-api
+ 2.0.17
+ provided
+
org.bstats
bstats-bukkit
@@ -77,6 +134,32 @@
worldguard-bukkit
${worldguard.version}
provided
+
+
+ it.unimi.dsi
+ fastutil
+
+
+ org.yaml
+ snakeyaml
+
+
+ com.google.guava
+ guava
+
+
+ com.google.code.gson
+ gson
+
+
+ org.bstats
+ bstats-bukkit
+
+
+ org.apache.logging.log4j
+ log4j-api
+
+