From 491337cf49bc8b054c8f7f2b4b00f05029367cd1 Mon Sep 17 00:00:00 2001 From: David Wallace Date: Thu, 1 Feb 2024 12:17:24 +0100 Subject: [PATCH] ci: add job and script for rdmo-app check --- .github/rdmo-app-ci-script.sh | 51 +++++++++++++++++++++++++++++++++++ .github/workflows/ci.yml | 14 ++++++++++ rdmo_radar/sample.local.py | 9 +++++++ 3 files changed, 74 insertions(+) create mode 100755 .github/rdmo-app-ci-script.sh create mode 100644 rdmo_radar/sample.local.py diff --git a/.github/rdmo-app-ci-script.sh b/.github/rdmo-app-ci-script.sh new file mode 100755 index 0000000..b1d9df1 --- /dev/null +++ b/.github/rdmo-app-ci-script.sh @@ -0,0 +1,51 @@ +#!/bin/bash +git clone git@github.com:rdmorganiser/rdmo-app +# need rdmo only for testing/config/settings +git clone git@github.com:rdmorganiser/rdmo + +cd rdmo-app +python3 -m venv env +source env/bin/activate +pip install --upgrade pip setuptools +pip install rdmo"[allauth]" + +# install and set-up plugin +cd .. +pip install . +cp rdmo_radar/sample.local.py rdmo-app/config/settings/local.py +PLUGIN=$(basename $(pwd)) +PLUGIN_NAME="${PLUGIN/rdmo-plugins-/}" + +# set up rdmo-app settings +# write to rdmo-app/config/settings/__init__.py +cp rdmo/testing/config/settings/* rdmo-app/config/settings +cd rdmo-app +# set up instance +# python manage.py download_vendor_files # download front-end vendor files +python manage.py migrate # initializes the database +python manage.py setup_groups # optional: create groups with different permissions + +python manage.py loaddata -v 2 "../rdmo/testing/fixtures/users.json" +python manage.py loaddata -v 2 ../rdmo/testing/fixtures/* + +python manage.py check + +# test PROJECT_EXPORTS setting +PROJECT_EXPORTS=$(python manage.py print_settings -f PROJECT_EXPORTS --format=value) +echo "Testing for presence of setting in django settings" +if [[ $PROJECT_EXPORTS == *"$PLUGIN_NAME"* ]]; then + echo "Plugin $PLUGIN_NAME is in PROJECT_EXPORTS.\n\t${PROJECT_EXPORTS}" +else + echo "Plugin $PLUGIN_NAME is not in PROJECT_EXPORTS.\n\t${PROJECT_EXPORTS}" + exit 1 +fi + +# test PROJECT_IMPORTS setting +PROJECT_IMPORTS=$(python manage.py print_settings -f PROJECT_IMPORTS --format=value) +echo "Testing for presence of setting in django settings" +if [[ $PROJECT_IMPORTS == *"$PLUGIN_NAME"* ]]; then + echo "Plugin $PLUGIN_NAME is in PROJECT_IMPORTS.\n\t${PROJECT_IMPORTS}" +else + echo "Plugin $PLUGIN_NAME is not in PROJECT_IMPORTS.\n\t${PROJECT_IMPORTS}" + exit 1 +fi diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml index 705f71a..a60f3c3 100644 --- a/.github/workflows/ci.yml +++ b/.github/workflows/ci.yml @@ -59,6 +59,20 @@ jobs: - run: python -Im pip install -e .[dev] - run: python -Ic 'import rdmo_radar; print(rdmo_radar.__version__)' + rdmo-app-check: + name: Build in rdmo-app + runs-on: ubuntu-22.04 + steps: + - uses: actions/checkout@v4 + - uses: actions/setup-python@v4 + with: + python-version: "3.12" + cache: pip + + - name: Run rdmo-app build and check script + run: bash .github/rdmo-app-ci-script.sh + + required-checks-pass: if: always() needs: diff --git a/rdmo_radar/sample.local.py b/rdmo_radar/sample.local.py new file mode 100644 index 0000000..eed928b --- /dev/null +++ b/rdmo_radar/sample.local.py @@ -0,0 +1,9 @@ +PROJECT_EXPORTS += [ + ('radar-xml', 'as RADAR XML', 'rdmo_radar.exports.RadarExport') +] +PROJECT_IMPORTS += [ + ('radar', 'from RADAR XML', 'rdmo_radar.imports.RadarImport') +] +PROJECT_EXPORTS += [ + ('radar', 'directly to RADAR', 'rdmo_radar.exports.RadarExportProvider') +] \ No newline at end of file