Skip to content

Commit 3e1af77

Browse files
authored
Test automatically updating Paper API
1 parent 328beeb commit 3e1af77

File tree

1 file changed

+44
-13
lines changed

1 file changed

+44
-13
lines changed

.github/workflows/main.yml

Lines changed: 44 additions & 13 deletions
Original file line numberDiff line numberDiff line change
@@ -1,71 +1,102 @@
11
name: CI
2+
23
on:
34
push:
45
branches:
56
- main
67
workflow_dispatch:
8+
schedule:
9+
- cron: '0 4 * * *' # Runs daily at 04:00 UTC
10+
711
permissions:
812
packages: write
913
contents: write
1014

1115
env:
12-
STUBGEN_BUILD_NUM: 12
16+
STUBGEN_BUILD_NUM: 13
17+
MINECRAFT_VERSION: 1.21.5
1318
ADDITIONAL_DEFINITION_URLS: |
1419
https://raw.githubusercontent.com/LuaLink/LuaLinkV2/master/src/main/resources/lua/script.lua
1520
https://raw.githubusercontent.com/LuaLink/LuaLinkV2/master/src/main/resources/lua/scheduler.lua
1621
SOURCES_JAR_URLS: |
17-
https://repo.papermc.io/repository/maven-public/io/papermc/paper/paper-api/1.21.5-no-moonrise-SNAPSHOT/paper-api-1.21.5-no-moonrise-20250328.181903-5-sources.jar
1822
https://repo.papermc.io/repository/maven-public/net/kyori/adventure-text-logger-slf4j/4.21.0/adventure-text-logger-slf4j-4.21.0-sources.jar
1923
https://repo.papermc.io/repository/maven-public/net/kyori/adventure-text-minimessage/4.11.0-SNAPSHOT/adventure-text-minimessage-4.11.0-20220309.063149-7-sources.jar
2024
https://repo.papermc.io/repository/maven-public/net/kyori/adventure-text-serializer-gson/4.21.0/adventure-text-serializer-gson-4.21.0-sources.jar
2125
https://repo.papermc.io/repository/maven-public/net/kyori/adventure-platform-bukkit/4.1.1-SNAPSHOT/adventure-platform-bukkit-4.1.1-20220228.221434-1.jar
2226
https://repo.papermc.io/repository/maven-public/net/kyori/adventure-api/4.21.0/adventure-api-4.21.0-sources.jar
27+
2328
jobs:
2429
build:
2530
runs-on: ubuntu-latest
2631
if: "!contains(github.event.commits[0].message, '[ci-skip]')"
2732
steps:
28-
- uses: actions/checkout@11bd71901bbe5b1630ceea73d27597364c9af683 # v4
33+
- uses: actions/checkout@v4
34+
2935
- name: Set up JDK 21
30-
uses: actions/setup-java@c5195efecf7bdfc987ee8bae7a71cb8b11521c00 # v4
36+
uses: actions/setup-java@v4
3137
with:
3238
java-version: 21
3339
distribution: 'adopt'
40+
3441
- name: Download LuaLink/LuaStubGen JAR
3542
run: |
36-
# Download to a temporary location
3743
mkdir -p $RUNNER_TEMP/stubgen
3844
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
48+
49+
- name: Resolve Paper API Snapshot Sources JAR
50+
id: resolve-paper
51+
run: |
52+
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"
54+
curl -s "$METADATA_URL" -o metadata.xml
55+
56+
VERSION=$(xmllint --xpath "string(//snapshotVersion[classifier='sources']/value)" metadata.xml)
57+
echo "Resolved version: $VERSION"
58+
59+
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+
62+
echo "PAPER_API_SOURCES_URL=$JAR_URL" >> $GITHUB_ENV
63+
3964
- name: Download Source JARs
4065
run: |
41-
# Download source JARs
4266
mkdir -p $RUNNER_TEMP/sources
43-
IFS=$'\n' # Split by newline to handle multiple URLs
67+
68+
# Download Paper API sources
69+
curl -L -o $RUNNER_TEMP/sources/paper-api-sources.jar "$PAPER_API_SOURCES_URL"
70+
71+
# Download other JARs
72+
IFS=$'\n'
4473
for url in $SOURCES_JAR_URLS; do
4574
filename=$(basename "$url")
4675
curl -L -o $RUNNER_TEMP/sources/"$filename" "$url"
4776
done
77+
78+
- name: Clean previous Paper definitions
79+
run: rm -rf library/paper
80+
4881
- name: Generate Lua definitions
4982
run: |
50-
# Generate Lua definitions
5183
mkdir -p library/paper
52-
# Get a space separated list of JAR files from the downloaded source JARs
5384
jar_files=$(ls $RUNNER_TEMP/sources/*.jar | tr '\n' ' ')
5485
java -jar $RUNNER_TEMP/stubgen/LuaStubGen.jar --output-dir=library/paper $jar_files
86+
5587
- name: Download additional definitions
5688
run: |
57-
# Download additional definitions
5889
mkdir -p library/lualink
59-
IFS=$'\n' # Split by newline to handle multiple URLs
90+
IFS=$'\n'
6091
for url in $ADDITIONAL_DEFINITION_URLS; do
6192
filename=$(basename "$url")
6293
curl -L -o library/lualink/"$filename" "$url"
6394
done
95+
6496
- name: Commit and push changes
6597
run: |
66-
# Commit and push changes
6798
git config --local user.name "GitHub Action"
68-
git config --local user.email "41898282+github-actions[bot]@users.noreply.github.com" # Default GitHub Actions bot email
99+
git config --local user.email "41898282+github-actions[bot]@users.noreply.github.com"
69100
git add library/paper
70101
git add library/lualink
71102
git commit -m "Update Lua definitions" || echo "No changes to commit"

0 commit comments

Comments
 (0)