-
Notifications
You must be signed in to change notification settings - Fork 0
79 lines (71 loc) · 2.71 KB
/
lua-validate.yml
File metadata and controls
79 lines (71 loc) · 2.71 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
name: Validate Lua Files
on:
push:
branches-ignore:
- dev
jobs:
validate:
runs-on: ubuntu-latest
steps:
- name: Checkout code
uses: actions/checkout@v4
with:
fetch-depth: 0 # Fetch all history so git diff works
- name: Get changed Lua files
id: changed
run: |
git fetch origin dev:refs/remotes/origin/dev
CHANGED=$(git diff --name-only origin/dev...${{ github.sha }} | grep '^src/.*\.lua$' || true)
echo "Changed Lua files: $CHANGED"
{
echo "changed<<EOF"
echo "$CHANGED"
echo "EOF"
} >> $GITHUB_OUTPUT
- name: Restore extension tester from cache
uses: actions/cache@v4
with:
path: extension-tester.jar
key: ${{ runner.os }}-extension-tester-v2
- name: Download extension tester if missing
run: |
if [ ! -f extension-tester.jar ]; then
wget -O extension-tester.jar "https://cdn.shosetsu.app/extension-tester/v2.0.0/extension-tester.jar"
fi
- name: Check version bump in changed Lua files
if: steps.changed.outputs.changed != ''
run: |
set -e
files=(${{ steps.changed.outputs.changed }})
for file in "${files[@]}"; do
if [ ! -f "$file" ]; then continue; fi
# Get header lines from current and dev branch
old_header=$(git show origin/dev:"$file" 2>/dev/null | head -n 1)
new_header=$(head -n 1 "$file")
# Extract version numbers
old_ver=$(echo "$old_header" | grep -o '"ver": *"[^"]*"' | sed 's/.*"ver": *"\([^"]*\)".*/\1/')
new_ver=$(echo "$new_header" | grep -o '"ver": *"[^"]*"' | sed 's/.*"ver": *"\([^"]*\)".*/\1/')
if [ -n "$old_ver" ] && [ -n "$new_ver" ]; then
if [ "$old_ver" = "$new_ver" ]; then
echo "::error file=$file::Version number ('ver') not incremented in $file"
exit 1
fi
fi
done
- name: Generate index.json
run: |
java -jar extension-tester.jar --ci --generate-index
- name: Run extension tester on changed Lua files
if: steps.changed.outputs.changed != ''
run: |
set -e
for file in ${{ steps.changed.outputs.changed }}; do
# Only test files matching src/<lang>/<ExtensionName>.lua
if [[ "$file" =~ ^src/[^/]+/[^/]+\.lua$ ]]; then
lang=$(echo "$file" | cut -d'/' -f2)
echo "Testing $file"
java -jar extension-tester.jar "$file"
else
echo "Skipping $file (not lua extension)"
fi
done