Refactored aristotle_validate
#2663
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
# This workflow will install Python dependencies, run tests and lint with a single version of Python | |
# For more information see: https://help.github.com/actions/language-and-framework-guides/using-python-with-github-actions | |
name: hazardlib + engine + server tests | |
on: | |
pull_request: | |
jobs: | |
engine: | |
runs-on: ${{ matrix.os }} | |
strategy: | |
fail-fast: false | |
matrix: | |
os: [ubuntu-24.04] | |
python-version: ["3.12"] | |
env: | |
GITHUB_HEAD_REF: ${{ github.head_ref }} | |
FROM_FORK: ${{ github.event.pull_request.head.repo.fork }} | |
steps: | |
- uses: actions/checkout@v4 | |
- name: Set up Python ${{ matrix.python-version }} | |
uses: actions/setup-python@v5 | |
with: | |
python-version: ${{ matrix.python-version }} | |
- name: Install dependencies | |
run: | | |
if [[ $FROM_FORK == "true" ]]; then | |
python install.py devel --version=$GITHUB_HEAD_REF --from_fork | |
else | |
python install.py devel --version=$GITHUB_HEAD_REF | |
fi | |
- name: Calculators hazard tests | |
run: | | |
set -e | |
source ~/openquake/bin/activate | |
pip install pytest https://wheelhouse.openquake.org/v3/py/rtgmpy-1.0.0-py3-none-any.whl | |
oq engine --upgrade-db | |
pytest --doctest-modules -x --disable-warnings --color=yes --durations=10 openquake/calculators -k 'not risk and not damage and not bcr' | |
hazardlib: | |
runs-on: ${{ matrix.os }} | |
strategy: | |
matrix: | |
os: [ubuntu-24.04] | |
python-version: ["3.12"] | |
env: | |
GITHUB_HEAD_REF: ${{ github.head_ref }} | |
FROM_FORK: ${{ github.event.pull_request.head.repo.fork }} | |
steps: | |
- uses: actions/checkout@v4 | |
- name: Set up Python ${{ matrix.python-version }} | |
uses: actions/setup-python@v5 | |
with: | |
python-version: ${{ matrix.python-version }} | |
- name: Install dependencies | |
run: | | |
if [[ $FROM_FORK == "true" ]]; then | |
python install.py devel --version=$GITHUB_HEAD_REF --from_fork | |
else | |
python install.py devel --version=$GITHUB_HEAD_REF | |
fi | |
- name: Hazardlib tests | |
run: | | |
set -e | |
source ~/openquake/bin/activate | |
pip install pyshp pytest flake8 ruff https://wheelhouse.openquake.org/v3/py/rtgmpy-1.0.0-py3-none-any.whl | |
oq engine --upgrade-db | |
cd openquake | |
ruff check --preview . | |
pytest calculators -k 'risk or damage or bcr' -x --doctest-modules --disable-warnings --color=yes --durations=5 | |
pytest -xs --doctest-modules --disable-warnings --color=yes --durations=8 sep hmtk risklib commonlib baselib hazardlib | |
pytest --doctest-modules ../doc/contributing/*.rst | |
server_public_mode: | |
runs-on: ${{ matrix.os }} | |
strategy: | |
matrix: | |
os: [ubuntu-24.04] | |
python-version: ["3.11"] | |
env: | |
GITHUB_HEAD_REF: ${{ github.head_ref }} | |
FROM_FORK: ${{ github.event.pull_request.head.repo.fork }} | |
OQ_APPLICATION_MODE: PUBLIC | |
steps: | |
- uses: actions/checkout@v4 | |
- name: Set up Python ${{ matrix.python-version }} | |
uses: actions/setup-python@v5 | |
with: | |
python-version: ${{ matrix.python-version }} | |
- name: Install dependencies | |
run: | | |
if [[ $FROM_FORK == "true" ]]; then | |
python install.py devel --version=$GITHUB_HEAD_REF --from_fork | |
else | |
python install.py devel --version=$GITHUB_HEAD_REF | |
fi | |
- name: Server 'PUBLIC' mode tests | |
run: | | |
curl -O https://downloads.openquake.org/test_data/exposure.hdf5 | |
source ~/openquake/bin/activate | |
pip install pytest https://wheelhouse.openquake.org/v3/py/rtgmpy-1.0.0-py3-none-any.whl | |
oq engine --upgrade-db | |
# Starting the webui here is not needed by test_public_mode, | |
# but here we also want to check that the webui starts without errors | |
oq webui start 127.0.0.1:8800 -s & | |
echo "Waiting WEBUI up on port 8800...." | |
while ! nc -z localhost 8800; do | |
sleep 5 # wait for 5 seconds before check again | |
done | |
pytest -xs --doctest-modules --disable-warnings --color=yes openquake/commands openquake/engine | |
# -v 2 also logs the test names | |
./openquake/server/manage.py test -v 2 tests.test_public_mode | |
server_read_only_mode: | |
runs-on: ${{ matrix.os }} | |
strategy: | |
matrix: | |
os: [ubuntu-24.04] | |
python-version: ["3.11"] | |
env: | |
GITHUB_HEAD_REF: ${{ github.head_ref }} | |
FROM_FORK: ${{ github.event.pull_request.head.repo.fork }} | |
OQ_APPLICATION_MODE: READ_ONLY | |
steps: | |
- uses: actions/checkout@v4 | |
- name: Set up Python ${{ matrix.python-version }} | |
uses: actions/setup-python@v5 | |
with: | |
python-version: ${{ matrix.python-version }} | |
- name: Install dependencies | |
run: | | |
if [[ $FROM_FORK == "true" ]]; then | |
python install.py devel --version=$GITHUB_HEAD_REF --from_fork | |
else | |
python install.py devel --version=$GITHUB_HEAD_REF | |
fi | |
- name: Server 'READ_ONLY' mode tests | |
run: | | |
source ~/openquake/bin/activate | |
oq engine --upgrade-db | |
# -v 2 also logs the test names | |
./openquake/server/manage.py test -v 2 tests.test_read_only_mode | |
server_aelo_mode: | |
runs-on: ${{ matrix.os }} | |
strategy: | |
matrix: | |
os: [ubuntu-24.04] | |
python-version: ["3.11"] | |
env: | |
GITHUB_HEAD_REF: ${{ github.head_ref }} | |
FROM_FORK: ${{ github.event.pull_request.head.repo.fork }} | |
OQ_APPLICATION_MODE: AELO | |
OQ_CONFIG_FILE: openquake/server/tests/data/openquake.cfg | |
steps: | |
- uses: actions/checkout@v4 | |
- name: Set up Python ${{ matrix.python-version }} | |
uses: actions/setup-python@v5 | |
with: | |
python-version: ${{ matrix.python-version }} | |
- name: Install dependencies | |
run: | | |
if [[ $FROM_FORK == "true" ]]; then | |
python install.py devel --version=$GITHUB_HEAD_REF --from_fork | |
else | |
python install.py devel --version=$GITHUB_HEAD_REF | |
fi | |
- name: Server 'AELO' mode tests | |
run: | | |
source ~/openquake/bin/activate | |
oq engine --upgrade-db | |
./openquake/server/manage.py migrate | |
./openquake/server/manage.py loaddata openquake/server/fixtures/0001_cookie_consent_required_plus_hide_cookie_bar.json | |
./openquake/server/manage.py collectstatic --noinput | |
# -v 2 also logs the test names | |
./openquake/server/manage.py test -v 2 tests.test_aelo_mode | |
server_aristotle_mode: | |
runs-on: ${{ matrix.os }} | |
strategy: | |
matrix: | |
os: [ubuntu-24.04] | |
python-version: ["3.11"] | |
env: | |
GITHUB_HEAD_REF: ${{ github.head_ref }} | |
FROM_FORK: ${{ github.event.pull_request.head.repo.fork }} | |
steps: | |
- uses: actions/checkout@v4 | |
- name: Set up Python ${{ matrix.python-version }} | |
uses: actions/setup-python@v5 | |
with: | |
python-version: ${{ matrix.python-version }} | |
- name: Install dependencies | |
run: | | |
if [[ $FROM_FORK == "true" ]]; then | |
python install.py devel --version=$GITHUB_HEAD_REF --from_fork | |
else | |
python install.py devel --version=$GITHUB_HEAD_REF | |
fi | |
- name: Server 'ARISTOTLE' mode tests | |
run: | | |
set -x | |
date | |
wget https://downloads.openquake.org/test_data/exposure.hdf5 | |
date | |
mv exposure.hdf5 openquake/qa_tests_data/mosaic/ | |
source ~/openquake/bin/activate | |
export PY_VER="$(python -c 'import sys; version=sys.version_info[:2]; print("{0}.{1}".format(*version))')" | |
export PYVER="$(echo ${PY_VER} | tr -d .)" | |
pip install https://wheelhouse.openquake.org/v3/linux/py${PYVER}/timezonefinder-6.5.2-cp${PYVER}-cp${PYVER}-manylinux_2_17_x86_64.manylinux_2_5_x86_64.manylinux1_x86_64.manylinux2014_x86_64.whl | |
oq engine --upgrade-db | |
./openquake/server/manage.py migrate | |
touch ~/webui-access.log | |
# -v 2 also logs the test names | |
OQ_APPLICATION_MODE=ARISTOTLE OQ_CONFIG_FILE=openquake/server/tests/data/openquake.cfg ./openquake/server/manage.py test -v 2 tests.test_aristotle_mode |