Skip to content

Commit

Permalink
Travil to github actios
Browse files Browse the repository at this point in the history
  • Loading branch information
skinkie committed Feb 21, 2025
1 parent ce377ce commit 15c3efe
Show file tree
Hide file tree
Showing 6 changed files with 89 additions and 78 deletions.
30 changes: 30 additions & 0 deletions .github/scripts/validate-and-lint.sh
Original file line number Diff line number Diff line change
@@ -0,0 +1,30 @@
#!/bin/bash
# Validate the XML file structure and lint XSD and XML files, e.g. indentation
#
# You need the binary `xmllint`
# apt-get install libxml2-utils

# The -e flag causes the script to exit as soon as one command returns a non-zero exit code
set -e

echo "Validating XML file structure and linting XSD and XML files ..."

PARSING_ERROR=0
# Iterate all XML and XSD files
while IFS= read -r -d $'\0' filename; do
# Prettify the file using xmllint and save the result to ${filename}.pretty
if XMLLINT_INDENT=$'\t' xmllint --encode UTF-8 --pretty 1 "${filename}" >"${filename}.pretty"; then
# Remove lines containing the term "xmlspy" to get rid of advertising this and save the result as ${filename}
grep -i -v "xmlspy" "${filename}.pretty" >"${filename}"
else
PARSING_ERROR=$?
echo -e "\033[0;Validating XML structure of file '${filename}' failed\033[0m"
fi
# Remove temp file
rm "${filename}.pretty"
done < <(/usr/bin/find . -type f \( -name "*.xsd" -or -name "*.xml" \) -not -path "./git" -print0)

if [ ${PARSING_ERROR} -ne 0 ]; then
exit ${PARSING_ERROR}
fi
echo -e '\033[0;32mFinished validating XML file structure and linting XSD and XML files\033[0m'
17 changes: 17 additions & 0 deletions .github/scripts/validate-examples.sh
Original file line number Diff line number Diff line change
@@ -0,0 +1,17 @@
#!/bin/bash
# Validate all SIRI XML examples from the examples/ directory against the SIRI XSD schema
#
# You need the binary `xmllint`
# apt-get install libxml2-utils

# The -e flag causes the script to exit as soon as one command returns a non-zero exit code
set -e

echo "Validating SIRI XML examples ..."

if xmllint --noout --schema xsd/siri.xsd examples/*/*.xml; then
echo -e '\033[0;32mValidating SIRI XML examples succeeded\033[0m'
else
echo -e '\033[0;31mValidating SIRI XML examples failed\033[0m'
exit 1
fi
42 changes: 42 additions & 0 deletions .github/workflows/ci.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,42 @@
name: CI

on:
# Triggers the workflow on push or pull request events but only for the "master" branch
push:
branches: [ "master", "main", "integration" ]
pull_request:
branches: [ "master", "main", "integration" ]

# Allows you to run this workflow manually from the Actions tab
workflow_dispatch:

jobs:
run:
runs-on: ubuntu-latest

steps:
- run: echo "Job was automatically triggered by a ${{ github.event_name }} event for branch ${{ github.ref }}"

- name: Check out repository code
uses: actions/checkout@v3
with:
# https://github.com/marketplace/actions/add-commit#working-with-prs
repository: ${{ github.event.pull_request.head.repo.full_name }}
ref: ${{ github.event.pull_request.head.ref }}

- name: Install xmllint and xsltproc
run: |
sudo apt-get update
sudo apt-get install libxml2-utils xsltproc
- name: Validate structure and lint XSD and XML files
run: ./.github/scripts/validate-and-lint.sh

- name: Validate SIRI XML examples
run: ./.github/scripts/validate-examples.sh

- name: Commit changes
uses: EndBug/add-and-commit@v9 # https://github.com/marketplace/actions/add-commit
with:
default_author: github_actions
message: 'Lint and update documentation tables'
10 changes: 0 additions & 10 deletions .travis.yml

This file was deleted.

64 changes: 0 additions & 64 deletions .travis/travis-ci_git-commit.sh

This file was deleted.

4 changes: 0 additions & 4 deletions .travis/xmllint-check.sh

This file was deleted.

0 comments on commit 15c3efe

Please sign in to comment.