Skip to content

Workflows

Sytse Walraven edited this page Nov 5, 2025 · 3 revisions

Doc Validation CI

Trigger

Aanmaken/updaten van een pull request en bij een push naar main.

Stappen

  1. Run tests

    Valideert dat doc/NLCSValidatieRegels.xml voldoet aan de eisen van doc/NLCSValidatieRegels.xsd.

  2. Install dependencies

    Installeert de benodigde Saxon-HE (en SchXslt2) afhankelijkheden.

  3. Generate and compare HTMLs

    Genereert NLCSValidatieRegels.html en controleert of deze overeenkomt met de huidige inhoud van het bestand.

Voorbeeld falende run

image

Rule Coverage CI

Trigger

Aanmaken/updaten van een pull request en bij een push naar main.

Stappen

  1. Check rule coverage

    Controleert of alle regels uit doc/NLCSValidatieRegels.xml gedekt zijn in validation_schemas/base/v11.sch. Workflow faalt indien regels niet geïmplementeerd zijn en/of niet bestaande regels in het Schematron bestand aanwezig zijn.

Voorbeeld falende run

image

Rule Validation CI

Trigger

Aanmaken/updaten van een pull request en bij een push naar main.

Stappen

  1. Install dependencies

    Installeert de benodigde Saxon-HE en SchXslt2 afhankelijkheden.

  2. Transpile phases to XSL

    Transpileert de Schematron bestanden naar een apart XSL bestand per fase (regel). Hierdoor is het mogelijk om per regel geïsoleerd te testen.

  3. Validate templates

    Voert de validatie van de regel-specifieke testdata uit. Hierbij wordt voor elke regel zowel de slagende als falende testdata (respectievelijk te vinden in templates/v11/[regelnummer]/passing en templates/v11/[regelnummer]/failing) gebruikt en wordt er voor elke test een validatierapport gegenereerd.

  4. Upload validation results

    Upload de validatierapporten als een artifact, wat nuttig zijn bij het debuggen van de tests of workflow.

  5. Validate test reports

    Controlleert of elk validatierapport van de slagende testdata geslaagd is (geen falende asserts bevat), en elk validatierapport van de falende testdata gefaald is (op zijn minst één falende assert bevat).

Voorbeeld falende* run

image

*Artifact wordt ook geüpload bij een succesvolle run.

Scope Validation CI

Trigger

Aanmaken/updaten van een pull request en bij een push naar main.

Stappen

  1. Install dependencies

    Installeert de benodigde Saxon-HE en SchXslt2 afhankelijkheden.

  2. Add scope checks

    Maakt kopieën van de bestanden in validation_schemas/abstract_patterns waarbij aan elke context (bijvoorbeeld nlcs:MSkabel) een filter wordt toegevoegd dat controleert of de validatie van de regel uitgevoerd moet worden afhankelijk van de scope van de context. Deze kopieën worden in validation_schemas/abstract_patterns_scope_checks opgeslagen.

    Vervolgens wordt er een kopie gemaakt van het Schematron basisbestand validation_schemas/base/v11.sch die gebruikt maakt van de zojuist gekopieërde abstract_patterns_scope_check bestanden. Deze kopie wordt in validation_schemas/base_scope_checks/v11.sch opgeslagen.

  3. Transpile Schematron to XSL

    Transpileer de Schematron bestanden met scope checks naar XSL.

  4. Validate scopes

    Voor elke scope worden kopieën gemaakt van het test/scope_validation_data/v11/scope_template.xml met alle mogelijk combinaties van tekening type, status en bedrijfstoestand. Dit template bestand bevat elk NLCS++ objecttype dat gevalideerd wordt.

    Vervolgens wordt er met elke kopie een validatie uitgevoerd. Het validatierapport wordt uitgelezen om vast te leggen welke validatieregels uitgevoerd zijn (slagend dan wel falend). Deze worden vervolgens vastgelegd, samen met de regels die verwacht waren, de regels die missen en de regels die niet verwacht waren met wel uitgevoerd zijn. Als er missende of onbedoelde validatieregels aanwezig zijn wordt de dit gerapporteerd en zal de workflow falen.

Voorbeeld falende run

image

Deliverables

Trigger

Pushen van een tag, startend met v (bijvoorbeeld v1.0.0).

Stappen

  1. Install dependencies

    Installeert de benodigde Saxon-HE en SchXslt2 afhankelijkheden.

  2. Add scope checks:

    Maakt kopieën van de bestanden in validation_schemas/abstract_patterns waarbij aan elke context (bijvoorbeeld nlcs:MSkabel) een filter wordt toegevoegd dat controleert of de validatie van de regel uitgevoerd moet worden afhankelijk van de scope van de context. Deze kopieën worden in validation_schemas/abstract_patterns_scope_checks opgeslagen.

    Vervolgens wordt er een kopie gemaakt van het Schematron basisbestand validation_schemas/base/v11.sch die gebruikt maakt van de zojuist gekopieërde abstract_patterns_scope_check bestanden. Deze kopie wordt in validation_schemas/base_scope_checks/v11.sch opgeslagen.

  3. Transpile Schematron to XSL

    Transpileer de Schematron bestanden met scope checks naar XSL.

  4. Bundle deliverables

    Kopieert en verpakt de benodigde bestanden voor de release in dist.zip:

    • De zojuist getranspileerde XSL-representatie van de Schematron bestanden
    • De benodigde XSL functies voor o.a. geometrie en configuratie
    • Configuratiebestanden uit doc en configuration
    • Lokalisaties (Nederlands en Engels) van de berichten voor falende asserts
  5. Upload deliverables

    Upload de deliverables als een artifact, wat nuttig zijn bij het debuggen van de release of workflow.

  6. Upload release

    Upload de deliverables (naast de source code) als een release op GitHub.

Voorbeeld succesvolle release

image

Clone this wiki locally