Skip to content

Commit 3b91d9a

Browse files
Remove hardcoded options, make fully script driven
1 parent 8ccd192 commit 3b91d9a

95 files changed

Lines changed: 2417 additions & 1247 deletions

File tree

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

.githooks/pre-commit

Lines changed: 53 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -29,13 +29,16 @@ echo "[pre-commit] dotnet version: $(dotnet_cmd --version 2>&1)"
2929
build_godotutils=false
3030
build_visualize=false
3131
build_packetgen=false
32+
build_optionsgen=false
3233

3334
# Only run full solution validation when staged files can affect compilation.
3435
requires_full_build=false
3536

3637
echo "$STAGED" | grep -q "^Template\.GodotUtils/" && build_godotutils=true || true
3738
echo "$STAGED" | grep -q "^Template\.Visualize/" && build_visualize=true || true
3839
echo "$STAGED" | grep -q "^Template\.PacketGen/" && build_packetgen=true || true
40+
echo "$STAGED" | grep -q "^Template\.OptionsGen/" && build_optionsgen=true || true
41+
echo "$STAGED" | grep -Eq "\.cs$" && build_optionsgen=true || true
3942

4043
# Visualize depends on GodotUtils
4144
if $build_visualize; then
@@ -59,7 +62,7 @@ done <<< "$STAGED"
5962
if echo "$STAGED" | grep -q "^\.editorconfig$"; then
6063
echo "[pre-commit] Syncing .editorconfig to subprojects..."
6164

62-
for dir in Template Template.GodotUtils Template.PacketGen Template.Visualize
65+
for dir in Template Template.GodotUtils Template.PacketGen Template.OptionsGen Template.Visualize
6366
do
6467
dest="$REPO_ROOT/$dir/.editorconfig"
6568
cp "$REPO_ROOT/.editorconfig" "$dest"
@@ -154,6 +157,55 @@ if $build_packetgen; then
154157
git add "$LIBS/PacketGen.$next_version.nupkg"
155158
fi
156159

160+
# ------------------------------------------------------------
161+
# Build Template.OptionsGen
162+
# ------------------------------------------------------------
163+
if $build_optionsgen; then
164+
echo "[pre-commit] Building Template.OptionsGen..."
165+
166+
proj="$REPO_ROOT/Template.OptionsGen/OptionsGen/OptionsGen.csproj"
167+
template_csproj="$REPO_ROOT/Template/Template.csproj"
168+
out_dir="$REPO_ROOT/Template.OptionsGen/OptionsGen/bin/Release"
169+
170+
current_version="$(grep -o '<Version>[^<]*</Version>' "$proj" | head -1 | sed 's/<[^>]*>//g')"
171+
172+
next_version=""
173+
174+
if [ -n "$current_version" ]; then
175+
major="${current_version%%.*}"
176+
rest="${current_version#*.}"
177+
minor="${rest%%.*}"
178+
patch="${rest#*.}"
179+
180+
next_version="$major.$minor.$((patch+1))"
181+
182+
sed -i "s|<Version>$current_version</Version>|<Version>$next_version</Version>|" "$proj"
183+
git add "$proj"
184+
185+
# Keep Template.csproj Template.OptionsGen reference in sync with the new version
186+
sed -i "s|<PackageReference Include=\"Template.OptionsGen\" Version=\"[^\"]*\"|<PackageReference Include=\"Template.OptionsGen\" Version=\"$next_version\"|" "$template_csproj"
187+
git add "$template_csproj"
188+
189+
echo "[pre-commit] Template.OptionsGen version $current_version$next_version"
190+
fi
191+
192+
# Stage deletion of any old tracked nupkgs and remove from filesystem before building
193+
git -C "$REPO_ROOT" rm --cached -f --ignore-unmatch "Template/Framework/Libraries/Template.OptionsGen.*.nupkg" 2>/dev/null || true
194+
find "$LIBS" -maxdepth 1 -name "Template.OptionsGen.*.nupkg" -delete || true
195+
196+
dotnet_cmd build "$proj" -c Release --no-restore
197+
198+
new_pkg="$out_dir/Template.OptionsGen.$next_version.nupkg"
199+
200+
if [ ! -f "$new_pkg" ]; then
201+
echo "[pre-commit] ERROR: Template.OptionsGen nupkg not found at $new_pkg"
202+
exit 1
203+
fi
204+
205+
cp "$new_pkg" "$LIBS/"
206+
git add "$LIBS/Template.OptionsGen.$next_version.nupkg"
207+
fi
208+
157209
# ------------------------------------------------------------
158210
# Verify everything still works by building all projects
159211
# ------------------------------------------------------------

.github/workflows/build_and_test.yml

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -12,6 +12,9 @@ on:
1212
- 'Template/**/*.import'
1313
- 'Template/**/*.csproj'
1414
- 'Template/**/*.sln'
15+
- 'Template.OptionsGen/**/*.cs'
16+
- 'Template.OptionsGen/**/*.csproj'
17+
- 'Template.sln'
1518
- 'Template/NuGet.config'
1619
- 'Template/project.godot'
1720
- '.github/workflows/build_and_test.yml'

.github/workflows/pr_ci.yml

Lines changed: 15 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -43,11 +43,14 @@ jobs:
4343
build_godotutils=false
4444
build_visualize=false
4545
build_packetgen=false
46+
build_optionsgen=false
4647
build_template=false
4748
4849
echo "$CHANGED" | grep -q "^Template\.GodotUtils/" && build_godotutils=true || true
4950
echo "$CHANGED" | grep -q "^Template\.Visualize/" && build_visualize=true || true
5051
echo "$CHANGED" | grep -q "^Template\.PacketGen/" && build_packetgen=true || true
52+
echo "$CHANGED" | grep -q "^Template\.OptionsGen/" && build_optionsgen=true || true
53+
echo "$CHANGED" | grep -Eq "\.cs$" && build_optionsgen=true || true
5154
echo "$CHANGED" | grep -q "^Template/" && build_template=true || true
5255
5356
if $build_visualize; then
@@ -58,21 +61,24 @@ jobs:
5861
build_godotutils=true
5962
build_visualize=true
6063
build_packetgen=true
64+
build_optionsgen=true
6165
build_template=true
6266
fi
6367
64-
if ! $build_godotutils && ! $build_visualize && ! $build_packetgen && ! $build_template; then
68+
if ! $build_godotutils && ! $build_visualize && ! $build_packetgen && ! $build_optionsgen && ! $build_template; then
6569
echo "No known project paths changed. Falling back to full validation."
6670
build_godotutils=true
6771
build_visualize=true
6872
build_packetgen=true
73+
build_optionsgen=true
6974
build_template=true
7075
fi
7176
7277
{
7378
echo "build_godotutils=$build_godotutils"
7479
echo "build_visualize=$build_visualize"
7580
echo "build_packetgen=$build_packetgen"
81+
echo "build_optionsgen=$build_optionsgen"
7682
echo "build_template=$build_template"
7783
} >> "$GITHUB_OUTPUT"
7884
@@ -96,6 +102,10 @@ jobs:
96102
dotnet format Template.PacketGen/PacketGen.sln --verify-no-changes
97103
fi
98104
105+
if [[ "${{ steps.changes.outputs.build_optionsgen }}" == "true" ]]; then
106+
dotnet format Template.OptionsGen/OptionsGen/OptionsGen.csproj --verify-no-changes
107+
fi
108+
99109
if [[ "${{ steps.changes.outputs.build_template }}" == "true" ]]; then
100110
dotnet format Template/Template.csproj --verify-no-changes
101111
fi
@@ -117,6 +127,10 @@ jobs:
117127
dotnet build Template.PacketGen/PacketGen/PacketGen.csproj -c Release --no-restore
118128
fi
119129
130+
if [[ "${{ steps.changes.outputs.build_optionsgen }}" == "true" ]]; then
131+
dotnet build Template.OptionsGen/OptionsGen/OptionsGen.csproj -c Release --no-restore
132+
fi
133+
120134
if [[ "${{ steps.changes.outputs.build_template }}" == "true" ]]; then
121135
dotnet build Template/Template.csproj --no-restore
122136
fi

0 commit comments

Comments
 (0)