Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
47 changes: 47 additions & 0 deletions .github/workflows/ci.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,47 @@
name: CI

on: [push, pull_request]

jobs:
validate:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v4

- name: Install dependencies
run: |
sudo apt-get update
sudo apt-get -y install libxml2-utils

- name: Validate against XSD schema
run: |
echo "::group::XSD Schema Validation"

# Run validation and capture output
if xmllint --noout --schema Servers.xsd Servers.xml 2>&1 | tee validation_output.txt; then
# Check if there were any validation errors in the output
if grep -q "Schemas validity error\|fails to validate" validation_output.txt; then
echo "Validation errors found, creating annotations..."
# Parse xmllint output and create annotations
while IFS= read -r line; do
if [[ $line == *"Servers.xml:"* && $line == *"Schemas validity error"* ]]; then
# Extract line number and error message
if [[ $line =~ Servers\.xml:([0-9]+): ]]; then
line_num="${BASH_REMATCH[1]}"
error_msg=$(echo "$line" | sed 's/.*Schemas validity error : //')
echo "::error file=Servers.xml,line=${line_num}::${error_msg}"
fi
fi
done < validation_output.txt
echo "::error file=Servers.xml::XSD validation failed - see annotations above"
echo "::endgroup::"
exit 1
else
echo "XSD validation passed"
echo "::endgroup::"
fi
else
echo "::error file=Servers.xml::XML parsing failed"
echo "::endgroup::"
exit 1
fi
14 changes: 0 additions & 14 deletions .github/workflows/xmllint.yml

This file was deleted.

18 changes: 9 additions & 9 deletions Servers.xml
Original file line number Diff line number Diff line change
Expand Up @@ -56,7 +56,7 @@
<server_host>df.drunkenfell.com</server_host>
<server_port>9000</server_port>
<type>PvE</type>
<status></status>
<status>Stable</status>
<website_url>http://www.drunkenfell.com</website_url>
<discord_url>https://discord.gg/e365fBcuaB</discord_url>
</ServerItem>
Expand All @@ -80,7 +80,7 @@
<server_host>serafino.ddns.net</server_host>
<server_port>9060</server_port>
<type>PvE</type>
<status></status>
<status>Stable</status>
<website_url></website_url>
<discord_url>https://discord.gg/GHKk4ck</discord_url>
</ServerItem>
Expand All @@ -92,7 +92,7 @@
<server_host>serafino.ddns.net</server_host>
<server_port>9070</server_port>
<type>PvP</type>
<status></status>
<status>Stable</status>
<website_url></website_url>
<discord_url>https://discord.gg/GHKk4ck</discord_url>
</ServerItem>
Expand All @@ -104,7 +104,7 @@
<server_host>levistras.acportalstorm.com</server_host>
<server_port>9000</server_port>
<type>PvE</type>
<status></status>
<status>Stable</status>
<website_url></website_url>
<discord_url>https://discord.gg/TtkcWbv</discord_url>
</ServerItem>
Expand All @@ -127,7 +127,7 @@
<emu>ACE</emu>
<server_host>thistlecrown.ddns.net</server_host>
<server_port>9000</server_port>
<type>PVE</type>
<type>PvE</type>
<status>Stable</status>
<website_url></website_url>
<discord_url>https://discord.gg/uhZ3hn7</discord_url>
Expand Down Expand Up @@ -199,7 +199,7 @@
<emu>ACE</emu>
<server_host>www.asheron4fun.com</server_host>
<server_port>9050</server_port>
<type>PVE</type>
<type>PvE</type>
<status>Stable</status>
<website_url>https://web.asheron4fun.com/</website_url>
<discord_url>https://discord.gg/afnQNXj</discord_url>
Expand All @@ -212,7 +212,7 @@
<server_host>asheronscall.hopto.org</server_host>
<server_port>9000</server_port>
<type>PvE</type>
<status></status>
<status>Stable</status>
<website_url></website_url>
<discord_url>https://discord.gg/VSFtYXN3v7</discord_url>
</ServerItem>
Expand Down Expand Up @@ -247,7 +247,7 @@
<emu>ACE</emu>
<server_host>morgentau.online</server_host>
<server_port>9000</server_port>
<type>PVE</type>
<type>PvE</type>
<status>Development</status>
<website_url>https://forum.morgentau.online/</website_url>
<discord_url>https://discord.gg/gJCYTr5fPU</discord_url>
Expand Down Expand Up @@ -464,7 +464,7 @@
<server_host>ebontide.zapto.org</server_host>
<server_port>9000</server_port>
<type>PvP</type>
<status></status>
<status>Stable</status>
<website_url></website_url>
<discord_url>https://discord.gg/r4b9yeNY</discord_url>
</ServerItem>
Expand Down
37 changes: 37 additions & 0 deletions Servers.xsd
Original file line number Diff line number Diff line change
@@ -0,0 +1,37 @@
<?xml version="1.0" encoding="utf-8"?>
<xs:schema xmlns:xs="http://www.w3.org/2001/XMLSchema" elementFormDefault="qualified">
<xs:element name="ArrayOfServerItem">
<xs:complexType>
<xs:sequence>
<xs:element name="ServerItem" type="ServerItemType" minOccurs="0" maxOccurs="unbounded" />
</xs:sequence>
</xs:complexType>
</xs:element>
<xs:complexType name="ServerItemType">
<xs:sequence>
<xs:element name="id" type="xs:string" />
<xs:element name="name" type="xs:string" />
<xs:element name="description" type="xs:string" />
<xs:element name="emu" type="xs:string" />
<xs:element name="server_host" type="xs:string" />
<xs:element name="server_port" type="xs:int" />
<xs:element name="type" type="ServerType" />
<xs:element name="status" type="StatusType" />
<xs:element name="website_url" type="xs:string" minOccurs="0" />
<xs:element name="discord_url" type="xs:string" minOccurs="0" />
</xs:sequence>
</xs:complexType>
<xs:simpleType name="ServerType">
<xs:restriction base="xs:string">
<xs:enumeration value="PvE" />
<xs:enumeration value="PvP" />
</xs:restriction>
</xs:simpleType>
<xs:simpleType name="StatusType">
<xs:restriction base="xs:string">
<xs:enumeration value="Stable" />
<xs:enumeration value="Development" />
<xs:enumeration value="Experimental" />
</xs:restriction>
</xs:simpleType>
</xs:schema>