Make MapServer work for development again #159
Workflow file for this run
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
name: Tests | |
on: | |
pull_request: | |
push: | |
branches: | |
- main | |
jobs: | |
check_mapfiles: | |
runs-on: ubuntu-latest | |
steps: | |
- uses: actions/checkout@v3 | |
- name: Set up Python | |
uses: actions/setup-python@v4 | |
with: | |
python-version: 3.11 | |
cache: "pip" | |
# Some mapfiles are generated by scripts, but also committed to the repo. | |
# Check for mismatches between committed files and script output. | |
- name: Regenerate mapfiles and check for equality | |
run: | | |
for script in gen_*.py; do | |
mapfile=$(echo $script | sed 's/^gen_//; s/\.py$//').map | |
if [ ! -f "$mapfile" ]; then | |
mapfile="private/$mapfile" | |
if [ ! -f "$mapfile" ]; then | |
echo "Result of ${script} not committed" | |
exit 1 | |
fi | |
fi | |
python3 "$script" | cmp - "$mapfile" | |
done | |
# The index.json file is not committed, but generated by the Docker | |
# entrypoint. It should at least be valid JSON. | |
- name: Check index.json file | |
run: | | |
# Create some bogus connection files, or including them will fail: | |
mkdir -p connections | |
for c in bag basiskaart dataselectie dataservices panorama; do | |
echo CONNECTIONTYPE postgis > connection/$c.inc | |
done | |
python3 tools/make_indexjson.py *.map | jq . > /dev/null | |
- name: Authorization checks | |
run: | | |
python3 -m pip install -r tools/requirements.txt | |
# adresseerbare_objecten and bgt_inrichtingselementen can't be parsed | |
# due to limitations in mappyfile. | |
# The other excluded maps should be fixed. They have workarounds in | |
# place to prevent access to restricted fields. | |
python3 tools/auth_check.py -e \ | |
adresseerbare_objecten bgt_inrichtingselementen \ | |
bomen brk2 ondergrond ziektenplagenexotengroen \ | |
meldingen_huidige_jaar meldingen_vorige_jaar meldingen_indicatoren \ | |
monumenten hr handelsregister | |
# Regression test. Asserts that we don't suffer from the MapServer 7.x | |
# bounding box bug https://github.com/MapServer/MapServer/issues/6478. | |
test_bbox: | |
runs-on: ubuntu-latest | |
steps: | |
- uses: actions/checkout@v3 | |
- name: Run MapServer | |
run: docker compose build map && | |
docker compose run -d -p "8383:80" map && | |
sleep 3 | |
- name: Projection test | |
run: curl 'http://localhost:8383/maps/projectiontest?REQUEST=GetFeature&SERVICE=wfs&OUTPUTFORMAT=application/json;%20subtype=geojson;%20charset=utf-8&Typename=feature&version=1.1.0&srsname=urn:ogc:def:crs:EPSG::4326&bbox=4.89337404,52.36483743,4.89351768,52.36489491' | | |
jq '.features | if length > 0 then . else halt_error(1) end' |