-
Notifications
You must be signed in to change notification settings - Fork 31
71 lines (59 loc) · 2.05 KB
/
ci.yml
File metadata and controls
71 lines (59 loc) · 2.05 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
name: CI
on:
pull_request:
workflow_dispatch:
jobs:
godot-project-check:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@34e114876b0b11c390a56381ad16ebd13914f8d5 # v4
- name: Verify xllint
shell: bash
run: |
command -v xmllint >/dev/null 2>&1 || {
sudo apt-get update
sudo apt-get install -y --no-install-recommends libxml2-utils
}
- name: Verify project
shell: bash
env:
CSPROJ_PATH: "Rhythia.csproj"
VERSION_FILE: ".github/godot_version.txt"
run: |
if compgen -G "${CSPROJ_PATH}.old*" > /dev/null; then
echo "::error file=${CSPROJ_PATH}.old::${CSPROJ_PATH}.old migration exists"
exit 1
fi
if [ ! -f "$CSPROJ_PATH" ]; then
echo "::error::$CSPROJ_PATH not found"
exit 1
fi
if [ ! -f "$VERSION_FILE" ]; then
echo "::error::$VERSION_FILE not found"
exit 1
fi
EXPECTED_VERSION=$(tr -d '[:space:]' < "$VERSION_FILE")
EXPECTED_SDK="Godot.NET.Sdk/${EXPECTED_VERSION}"
ACTUAL_SDK=$(xmllint --xpath 'string(/Project/@Sdk)' "$CSPROJ_PATH")
if [ -z "$ACTUAL_SDK" ]; then
echo "::error file=$CSPROJ_PATH::no <Project Sdk=\"...\"> attribute found"
exit 1
fi
if [ "$ACTUAL_SDK" != "$EXPECTED_SDK" ]; then
echo "::error file=$CSPROJ_PATH::expected Sdk=\"$EXPECTED_SDK\" but found Sdk=\"$ACTUAL_SDK\""
exit 1
fi
echo "Godot SDK OK: $ACTUAL_SDK"
dotnet-format:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@34e114876b0b11c390a56381ad16ebd13914f8d5 # Checkout v4
- name: Setup
uses: actions/setup-dotnet@67a3573c9a986a3f9c594539f4ab511d57bb3ce9 # Dotnet 4.0.2
with:
dotnet-version: 10.0.x
cache: true
- name: Restore dependencies
run: dotnet restore --locked-mode
- name: Format
run: dotnet format --verify-no-changes Rhythia.csproj