Skip to content

Commit 45e2e26

Browse files
authored
Update main.yml
1 parent ebadf13 commit 45e2e26

File tree

1 file changed

+65
-16
lines changed

1 file changed

+65
-16
lines changed

.github/workflows/main.yml

Lines changed: 65 additions & 16 deletions
Original file line numberDiff line numberDiff line change
@@ -3,7 +3,7 @@ name: CI
33
on:
44
push:
55
branches:
6-
- main
6+
- testing
77
workflow_dispatch:
88
schedule:
99
- cron: '0 4 * * *' # Runs daily at 04:00 UTC
@@ -15,6 +15,7 @@ permissions:
1515
env:
1616
STUBGEN_BUILD_NUM: 15
1717
MINECRAFT_VERSION: 1.21.5
18+
OPENJDK_REPO: https://github.com/openjdk/jdk21u-dev
1819
ADDITIONAL_DEFINITION_URLS: |
1920
https://raw.githubusercontent.com/LuaLink/LuaLinkV2/master/src/main/resources/lua/script.lua
2021
https://raw.githubusercontent.com/LuaLink/LuaLinkV2/master/src/main/resources/lua/scheduler.lua
@@ -38,37 +39,27 @@ jobs:
3839
java-version: 21
3940
distribution: 'adopt'
4041

42+
- name: Install xmllint
43+
run: sudo apt-get update && sudo apt-get install -y libxml2-utils zip
44+
4145
- name: Download LuaLink/LuaStubGen JAR
4246
run: |
4347
mkdir -p $RUNNER_TEMP/stubgen
4448
curl -L -o $RUNNER_TEMP/stubgen/LuaStubGen.jar https://github.com/LuaLink/LuaStubGen/releases/download/$STUBGEN_BUILD_NUM/LuaStubGen-1.0-SNAPSHOT-all.jar
45-
46-
- name: Install xmllint
47-
run: sudo apt-get update && sudo apt-get install -y libxml2-utils
4849
4950
- name: Resolve Paper API Snapshot Sources JAR
5051
id: resolve-paper
5152
run: |
5253
METADATA_URL="https://repo.papermc.io/repository/maven-public/io/papermc/paper/paper-api/${MINECRAFT_VERSION}-R0.1-SNAPSHOT/maven-metadata.xml"
53-
echo "Fetching metadata from $METADATA_URL"
5454
curl -s "$METADATA_URL" -o metadata.xml
55-
5655
VERSION=$(xmllint --xpath "string(//snapshotVersion[classifier='sources']/value)" metadata.xml)
57-
echo "Resolved version: $VERSION"
58-
5956
JAR_URL="https://repo.papermc.io/repository/maven-public/io/papermc/paper/paper-api/${MINECRAFT_VERSION}-R0.1-SNAPSHOT/paper-api-${VERSION}-sources.jar"
60-
echo "Resolved JAR URL: $JAR_URL"
61-
6257
echo "PAPER_API_SOURCES_URL=$JAR_URL" >> $GITHUB_ENV
6358
6459
- name: Download Source JARs
6560
run: |
6661
mkdir -p $RUNNER_TEMP/sources
67-
68-
# Download Paper API sources
6962
curl -L -o $RUNNER_TEMP/sources/paper-api-sources.jar "$PAPER_API_SOURCES_URL"
70-
71-
# Download other JARs
7263
IFS=$'\n'
7364
for url in $SOURCES_JAR_URLS; do
7465
filename=$(basename "$url")
@@ -78,7 +69,7 @@ jobs:
7869
- name: Clean previous Paper definitions
7970
run: rm -rf library/paper
8071

81-
- name: Generate Lua definitions
72+
- name: Generate Lua definitions for Paper
8273
run: |
8374
mkdir -p library/paper
8475
jar_files=$(ls $RUNNER_TEMP/sources/*.jar | tr '\n' ' ')
@@ -93,11 +84,69 @@ jobs:
9384
curl -L -o library/lualink/"$filename" "$url"
9485
done
9586
87+
- name: Clone OpenJDK sources and generate Java stubs
88+
run: |
89+
git clone --depth 1 $OPENJDK_REPO $RUNNER_TEMP/openjdk
90+
mkdir -p $RUNNER_TEMP/java-jar
91+
cd $RUNNER_TEMP/openjdk
92+
zip -r $RUNNER_TEMP/java-jar/openjdk-src.jar ./src
93+
94+
mkdir -p library/java
95+
java -jar $RUNNER_TEMP/stubgen/LuaStubGen.jar --output-dir=library/java $RUNNER_TEMP/java-jar/openjdk-src.jar
96+
97+
- name: Clean Java stubs to keep only allowed classes
98+
run: |
99+
ALLOWED_CLASSES=(
100+
java.util.Map
101+
java.util.HashMap
102+
java.util.Collection
103+
java.util.List
104+
java.util.ArrayList
105+
java.util.Set
106+
java.util.HashSet
107+
java.util.Collections
108+
java.util.stream.Stream
109+
java.lang.Character
110+
java.util.Arrays
111+
java.util.UUID
112+
java.util.concurrent.CompletableFuture
113+
java.util.function.Function
114+
java.util.function.BiFunction
115+
java.util.function.Consumer
116+
java.util.function.BiConsumer
117+
java.util.function.Predicate
118+
java.lang.Object
119+
java.util.Objects
120+
java.net.URI
121+
java.net.URL
122+
java.io.File
123+
java.nio.file.Path
124+
java.util.regex.Pattern
125+
java.util.regex.Matcher
126+
java.text.SimpleDateFormat
127+
java.util.Locale
128+
java.util.Iterator
129+
java.util.ListIterator
130+
java.text.DecimalFormat
131+
java.util.function.Supplier
132+
java.util.Optional
133+
java.util.logging.Logger
134+
)
135+
136+
cd library/java || exit 1
137+
for file in *.lua; do
138+
base="${file%.lua}"
139+
if [[ ! " ${ALLOWED_CLASSES[@]} " =~ " ${base} " ]]; then
140+
rm -v "$file"
141+
fi
142+
done
143+
96144
- name: Commit and push changes
97145
run: |
98146
git config --local user.name "GitHub Action"
99147
git config --local user.email "41898282+github-actions[bot]@users.noreply.github.com"
100148
git add library/paper
101149
git add library/lualink
150+
git add library/java
102151
git commit -m "Update Lua definitions" || echo "No changes to commit"
103-
git push origin HEAD:main
152+
git push origin HEAD:testing

0 commit comments

Comments
 (0)