Compare commits

..

34 Commits

Author SHA1 Message Date
Klop233
684bedefaa Update CI 2024-04-13 18:38:21 +08:00
Klop233
a35c3ec981 Update CI 2024-04-13 18:28:07 +08:00
Klop233
0461985e95 Update CI 2024-04-13 18:15:03 +08:00
Klop233
04b1668fa7 Update CI 2024-04-13 18:00:45 +08:00
Klop233
fb85fe59e6 Update CI 2024-04-13 17:47:15 +08:00
MrHua269
514fe3ca71 Rewrite linear region flush task dispatching 2024-04-13 17:45:46 +08:00
Klop233
b1f0a68b10 Fixed CI 2024-04-13 17:43:51 +08:00
Klop233
fd780f417b Fixed CI 2024-04-13 17:20:03 +08:00
Klop233
6339b2adc1 Update CI 2024-04-12 21:59:58 +08:00
Klop233
cc593b53e2 Update CI 2024-04-12 21:40:57 +08:00
Klop233
3b838086e9 Update CI 2024-04-12 21:26:42 +08:00
Klop233
9f0574db9f Update CI 2024-04-12 21:14:15 +08:00
Klop233
705170d111 Update CI 2024-04-12 20:48:27 +08:00
Klop233
5fdb14947b Update CI 2024-04-12 20:34:39 +08:00
Klop233
d66ce6fb87 Update CI 2024-04-12 20:23:35 +08:00
Klop233
b81eb1857c Update CI 2024-04-12 20:08:32 +08:00
Klop233
cc0312cd76 update CI 2024-04-12 19:52:41 +08:00
Klop233
3313ff7c61 update CI 2024-04-12 19:52:07 +08:00
Klop233
06a87833f3 update CI 2024-04-12 19:51:19 +08:00
Klop233
6d39abe168 update CI 2024-04-12 19:45:36 +08:00
Klop233
9243eea30b update CI 2024-04-12 19:40:30 +08:00
Klop233
1334c291e5 update CI 2024-04-12 19:25:45 +08:00
Klop233
bd1178911d update CI 2024-04-12 19:03:54 +08:00
Klop233
41a500a5ad Merge remote-tracking branch 'origin/ver/1.20.4' into ver/1.20.4 2024-04-12 18:46:57 +08:00
Klop233
a1ba257238 update CI 2024-04-12 18:46:28 +08:00
ShintoKosei
a40d934630 UPDATE CI 2024-04-06 23:18:23 +08:00
ShintoKosei
79b6b41b63 Jump Build To Debug CI <14> 2024-04-06 23:16:27 +08:00
ShintoKosei
52ab368069 Jump Build To Debug CI <13> 2024-04-06 23:15:21 +08:00
ShintoKosei
0bfac95070 Jump Build To Debug CI <12> 2024-04-06 22:35:25 +08:00
ShintoKosei
c69ed4279e Jump Build To Debug CI <11> 2024-04-06 22:34:17 +08:00
ShintoKosei
127aa3728a Jump Build To Debug CI <10> 2024-04-06 22:32:59 +08:00
ShintoKosei
1e7b4394ac Jump Build To Debug CI <9> 2024-04-06 22:30:17 +08:00
ShintoKosei
f129a1e860 Jump Build To Debug CI <8> 2024-04-06 22:23:51 +08:00
ShintoKosei
922a85f662 Update CI 2024-04-06 22:06:15 +08:00
5 changed files with 163 additions and 26 deletions

View File

@@ -10,6 +10,7 @@ permissions: write-all
jobs:
build:
runs-on: ubuntu-latest
environment: default
steps:
- name: Checkout Git Repository
@@ -23,18 +24,18 @@ jobs:
run: |
git config --global user.email "ci@luminolmc.com"
git config --global user.name "Luminol CI"
# - name: Apply Patches
# run: ./gradlew applyPatches
# - name: Build
# run: ./gradlew createReobfBundlerJar createReobfPaperclipJar
# - uses: "actions/upload-artifact@v3"
# with:
# name: "Luminol CI Artifacts"
# path: "build/libs/*.jar"
# - name: Rename jar file
# run: |
# mv build/libs/luminol-bundler-1.20.4-R0.1-SNAPSHOT-reobf.jar build/libs/luminol-1.20.4-bundler.jar
# mv build/libs/luminol-paperclip-1.20.4-R0.1-SNAPSHOT-reobf.jar build/libs/luminol-1.20.4-paperclip.jar
- name: Apply Patches
run: ./gradlew applyPatches
- name: Build
run: ./gradlew createReobfBundlerJar createReobfPaperclipJar
- uses: "actions/upload-artifact@v3"
with:
name: "Luminol CI Artifacts"
path: "build/libs/*.jar"
- name: Rename jar file
run: |
mv build/libs/luminol-bundler-1.20.4-R0.1-SNAPSHOT-reobf.jar build/libs/luminol-1.20.4-bundler.jar
mv build/libs/luminol-paperclip-1.20.4-R0.1-SNAPSHOT-reobf.jar build/libs/luminol-1.20.4-paperclip.jar
- name: setenv
run: |
sh scripts/SetENV.sh
@@ -58,6 +59,6 @@ jobs:
- name: Push to Api
if: "!contains(github.event.commits[0].message, '[release-skip]')"
env:
secret_v2: ${{ secrets.API_V2_PUSH_TOKEN }}
secret_v2: ${{ secrets.API_KEY }}
tag: ${{ env.tag }}
run: sh scripts/PushToAPI.sh

View File

@@ -0,0 +1,120 @@
From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001
From: MrHua269 <novau233@163.com>
Date: Fri, 12 Apr 2024 13:48:09 +0000
Subject: [PATCH] Rewrite linear region flush task dispatching
diff --git a/src/main/java/dev/kaiijumc/kaiiju/region/LinearRegionFile.java b/src/main/java/dev/kaiijumc/kaiiju/region/LinearRegionFile.java
index e40989889f3821bb7484fc0bae5d94b033013904..dc5a5f42c9ca7a50295c18424722568a3ad33fa5 100644
--- a/src/main/java/dev/kaiijumc/kaiiju/region/LinearRegionFile.java
+++ b/src/main/java/dev/kaiijumc/kaiiju/region/LinearRegionFile.java
@@ -126,7 +126,7 @@ public class LinearRegionFile implements AbstractRegionFile, AutoCloseable {
}
public void flush() throws IOException {
- if (isMarkedToSave()) flushWrapper(); // sync
+ if (getAndResetSaveMarker()) flushWrapper(); // sync
}
private void markToSave() {
@@ -134,10 +134,18 @@ public class LinearRegionFile implements AbstractRegionFile, AutoCloseable {
markedToSave.set(true);
}
- public boolean isMarkedToSave() {
+ public boolean getAndResetSaveMarker() {
return markedToSave.getAndSet(false);
}
+ public boolean isMarkedToSave(){
+ return this.markedToSave.get();
+ }
+
+ public void resetSaveMarker(){
+ this.markedToSave.set(false);
+ }
+
public void flushWrapper() {
try {
save();
diff --git a/src/main/java/dev/kaiijumc/kaiiju/region/LinearRegionFileFlusher.java b/src/main/java/dev/kaiijumc/kaiiju/region/LinearRegionFileFlusher.java
index f06d7767c79e465f999b2032086cc224de95152a..65435eb666b2e1cabffc145e016faa5e3b373464 100644
--- a/src/main/java/dev/kaiijumc/kaiiju/region/LinearRegionFileFlusher.java
+++ b/src/main/java/dev/kaiijumc/kaiiju/region/LinearRegionFileFlusher.java
@@ -1,17 +1,14 @@
package dev.kaiijumc.kaiiju.region;
import com.google.common.util.concurrent.ThreadFactoryBuilder;
-import java.util.Queue;
+
+import java.util.Set;
import java.util.concurrent.*;
import org.bukkit.Bukkit;
public class LinearRegionFileFlusher {
- private final Queue<LinearRegionFile> savingQueue = new LinkedBlockingQueue<>();
- private final ScheduledExecutorService scheduler = Executors.newSingleThreadScheduledExecutor(
- new ThreadFactoryBuilder()
- .setNameFormat("linear-flush-scheduler")
- .build()
- );
+ private final Set<LinearRegionFile> pendingSaving = ConcurrentHashMap.newKeySet();
+
private final ExecutorService executor = Executors.newFixedThreadPool(
me.earthme.luminol.config.modules.misc.RegionFormatConfig.linearFlushThreads,
new ThreadFactoryBuilder()
@@ -19,26 +16,42 @@ public class LinearRegionFileFlusher {
.build()
);
+ private final Executor delayedFlusher = CompletableFuture.delayedExecutor(
+ me.earthme.luminol.config.modules.misc.RegionFormatConfig.linearFlushFrequency,
+ TimeUnit.SECONDS,
+ executor
+ );
+
public LinearRegionFileFlusher() {
Bukkit.getLogger().info("Using " + me.earthme.luminol.config.modules.misc.RegionFormatConfig.linearFlushThreads + " threads for linear region flushing.");
- scheduler.scheduleAtFixedRate(this::pollAndFlush, 0L, me.earthme.luminol.config.modules.misc.RegionFormatConfig.linearFlushFrequency, TimeUnit.SECONDS);
}
public void scheduleSave(LinearRegionFile regionFile) {
- if (savingQueue.contains(regionFile)) return;
- savingQueue.add(regionFile);
- }
-
- private void pollAndFlush() {
- while (!savingQueue.isEmpty()) {
- LinearRegionFile regionFile = savingQueue.poll();
- if (!regionFile.closed && regionFile.isMarkedToSave())
- executor.execute(regionFile::flushWrapper);
+ if (this.pendingSaving.contains(regionFile) || !regionFile.isMarkedToSave()){
+ return;
}
+
+ this.pendingSaving.add(regionFile);
+ this.delayedFlusher.execute(()->{
+ try {
+ if (!regionFile.closed && regionFile.isMarkedToSave()){
+ regionFile.flushWrapper();
+ }
+ }finally {
+ regionFile.resetSaveMarker();
+ this.pendingSaving.remove(regionFile);
+ }
+ });
}
public void shutdown() {
- executor.shutdown();
- scheduler.shutdown();
+ this.executor.shutdown();
+ for (;;) {
+ try {
+ if (this.executor.awaitTermination(5_00,TimeUnit.MILLISECONDS)) break;
+ } catch (InterruptedException e) {
+ e.printStackTrace();
+ }
+ }
}
}

View File

@@ -5,23 +5,44 @@ sha256() {
prop() {
grep "${1}" gradle.properties | cut -d'=' -f2 | sed 's/\r//'
}
echo "$tag"
project_id="luminol"
mcversion_group=$(prop GroupMCV)
mcversion=$(prop mcVersion)
echo "$mcversion_group - $mcversion"
pre=$(prop preVersion)
if [ $pre = "true" ]; then
channel="experimental"
else
channel="default"
fi
number=$(git log --oneline "ver/1.20.4" ^$(git describe --tags --abbrev=0) | wc -l)
changes=$(git log --pretty='%H<<<%s>>>' -"$number" | sed ':a;N;$!ba;s/\n//g')
changes=$(git log -1 --pretty="[{\"commit\": \"%H\", \"message\": \"%s\", \"summary\": \"%s\"}]")
jar_sha256=`sha256 build/libs/luminol-1.20.4-paperclip.jar`
echo "$har_sha256"
jar_name="luminol-1.20.4-paperclip.jar"
ctime=$(date -u +"%s")"000"
echo "$ctime"
# v2
curl --location --request POST "https://api.luminolmc.com/v2/projects/$project_id/$mcversion/build/commit" --header "Content-Type: application/json" --header "Authentication: $secret_v2" --data-raw "{\"version_group\":\"$mcversion_group\",\"channel\":\"$channel\",\"changes\":\"$changes\",\"jar_name\":\"$jar_name\",\"sha256\":\"$jar_sha256\",\"release_tag\":\"$tag\",\"time\":\"$ctime\"}"
echo "Authentication: $secret_v2"
#echo "{\"version_group\":\"$mcversion_group\",\"channel\":\"$channel\",\"changes\":\"$changes\",\"jar_name\":\"$jar_name\",\"sha256\":\"$jar_sha256\",\"release_tag\":\"$tag\",\"time\":\"$ctime\"}" > data.json
json=$(printf "{\\\"channel\\\":\\\"%s\\\", \\\"jar_name\\\":\\\"%s\\\", \\\"sha256\\\":\\\"%s\\\", \\\"tag\\\":\\\"%s\\\", \\\"time\\\":\\\"%s\\\", \\\"changes\\\":\\\"%s\\\"}" \
"$channel" "$jar_name" "$jar_sha256" "$tag" "$ctime" "$changes")
echo "[DEBUG] $json"
echo "[DEBUG] $changes"
echo "[DEBUG] curl --location --request POST \"https://api.luminolmc.com/v2/projects/$project_id/$mcversion/build/commit\" \
-H \"Content-Type: application/x-www-form-urlencoded\" \
-H \"Authorization: $secret_v2\" \
--data-urlencode \"channel=$channel\" \
--data-urlencode \"jar_name=$jar_name\" \
--data-urlencode \"sha256=$jar_sha256\" \
--data-urlencode \"release_tag=$tag\" \
--data-urlencode \"time=$ctime\" \
--data-urlencode \"changes=$changes\""
curl -L --request POST "https://api.luminolmc.com/v2/projects/$project_id/$mcversion/build/commit" \
-H "Content-Type: application/x-www-form-urlencoded" \
-H "Authorization: $secret_v2" \
--data-urlencode "channel=$channel" \
--data-urlencode "jar_name=$jar_name" \
--data-urlencode "sha256=$jar_sha256" \
--data-urlencode "release_tag=$tag" \
--data-urlencode "time=$ctime" \
--data-urlencode "changes=$changes"

View File

@@ -3,16 +3,11 @@ prop() {
}
commitid=$(git log --pretty='%h' -1)
echo "$commitid"
mcversion=$(prop mcVersion)
echo "$mcversion"
preVersion=$(prop preVersion)
echo "$preVersion"
release_tag="$mcversion-$commitid"
echo "$release_tag"
jarName="build/libs/luminol-1.20.4-paperclip.jar"
make_latest=$([ $preVersion = "true" ] && echo "false" || echo "true")
echo "$make_latest"
echo "commitid=$commitid" >> $GITHUB_ENV
echo "mcversion=$mcversion" >> $GITHUB_ENV
@@ -20,4 +15,4 @@ echo "$mcversion"
echo "tag=$release_tag" >> $GITHUB_ENV
echo "jar=$jarName" >> $GITHUB_ENV
echo "pre=$preVersion" >> $GITHUB_ENV
echo "make_latest=$make_latest" >> $GITHUB_ENV
echo "make_latest=$make_latest" >> $GITHUB_ENV