. #846
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: Test | |
on: | |
push: | |
env: | |
GENERATE_WORKFLOW_TEST_RESULTS: false | |
GENERATE_PROCESSOR_TEST_RESULTS: false | |
jobs: | |
test-workflow: | |
name: Test Workflow | |
runs-on: ubuntu-latest | |
services: | |
db: | |
image: postgis/postgis:16-3.4 | |
env: | |
POSTGRES_PASSWORD: postgres | |
ports: | |
- 25440:5432 | |
options: >- | |
--health-cmd pg_isready | |
--health-interval 10s | |
--health-timeout 5s | |
--health-retries 5 | |
steps: | |
- name: Checkout | |
uses: actions/checkout@v3 | |
with: | |
token: ${{ secrets.GH_PAT || github.token }} | |
submodules: recursive | |
- name: Setup Micromamba | |
uses: mamba-org/setup-micromamba@v1 | |
with: | |
environment-name: spatialyze | |
create-args: >- | |
-c conda-forge | |
python=3.10 | |
poetry=1.5.1 | |
init-shell: none | |
cache-downloads: false | |
- name: Check Python Versions | |
shell: micromamba-shell {0} | |
run: | | |
python --version | |
python3 --version | |
which python | |
which python3 | |
which pip | |
which pip3 | |
which poetry | |
- name: Install Dependencies | |
shell: micromamba-shell {0} | |
run: poetry install --no-interaction --without dev --with test | |
- name: Check Installed Packages | |
shell: micromamba-shell {0} | |
run: pip list | |
- name: Extend MobilityDB with User-Defined functions | |
shell: micromamba-shell {0} | |
run: | | |
pushd scripts/pg-extender | |
python ../generate_pg_extender.py | |
cat install.sql | |
psql -h localhost -p 25440 -d postgres -U postgres -c "SET client_min_messages TO WARNING;" -c "\i install.sql;" | |
popd | |
env: | |
PGPASSWORD: postgres | |
- name: Ingest data | |
shell: micromamba-shell {0} | |
run: python ./scripts/ingest_road.py | |
env: | |
AP_PORT: 25440 | |
AP_HOST: localhost | |
- name: Count Tests | |
shell: micromamba-shell {0} | |
run: | | |
pytest --collect-only -qq tests/workflow | |
pytest --collect-only -q -W ignore::Warning tests/workflow | head -n -2 | wc -l | |
pytest --collect-only -q -W ignore::Warning tests/workflow | head -n -2 | wc -l &> test-count | |
env: | |
AP_PORT: 25440 | |
AP_HOST: localhost | |
- name: Unit Test | |
shell: micromamba-shell {0} | |
run: pytest --cov=spatialyze --cov-report=xml -vv tests/workflow | |
env: | |
AP_PORT: 25440 | |
AP_HOST: localhost | |
- uses: actions/upload-artifact@v3 | |
with: | |
name: workflow-coverage | |
path: ./coverage.xml | |
- uses: actions/upload-artifact@v3 | |
with: | |
name: workflow-count | |
path: ./test-count | |
- name: Commit generated test inputs | |
if: ${{ env.GENERATE_WORKFLOW_TEST_RESULTS == 'true' }} | |
run: ./scripts/commit-and-push.sh "[CI] update workflow tests" | |
test-video-processor: | |
name: Test Video Processor | |
runs-on: ubuntu-latest | |
services: | |
db: | |
image: postgis/postgis:16-3.4 | |
env: | |
POSTGRES_PASSWORD: postgres | |
ports: | |
- 25440:5432 | |
options: >- | |
--health-cmd pg_isready | |
--health-interval 10s | |
--health-timeout 5s | |
--health-retries 5 | |
steps: | |
- name: Checkout | |
uses: actions/checkout@v3 | |
with: | |
token: ${{ secrets.GH_PAT || github.token }} | |
submodules: recursive | |
- name: Setup Micromamba | |
uses: mamba-org/setup-micromamba@v1 | |
with: | |
environment-name: spatialyze | |
create-args: >- | |
-c conda-forge | |
python=3.10 | |
poetry=1.5.1 | |
init-shell: none | |
cache-downloads: false | |
- name: Check Python Versions | |
shell: micromamba-shell {0} | |
run: | | |
python --version | |
python3 --version | |
which python | |
which python3 | |
which pip | |
which pip3 | |
which poetry | |
- name: Install Dependencies | |
shell: micromamba-shell {0} | |
run: poetry install --no-interaction --without dev --with test | |
- name: Check Installed Packages | |
shell: micromamba-shell {0} | |
run: pip list | |
- name: Extend MobilityDB with User-Defined functions | |
shell: micromamba-shell {0} | |
run: | | |
pushd scripts/pg-extender | |
python ../generate_pg_extender.py | |
cat install.sql | |
psql -h localhost -p 25440 -d postgres -U postgres -c "SET client_min_messages TO WARNING;" -c "\i install.sql;" | |
popd | |
env: | |
PGPASSWORD: postgres | |
- name: Ingest data | |
shell: micromamba-shell {0} | |
run: | | |
python ./scripts/ingest_road.py | |
env: | |
AP_PORT: 25440 | |
AP_HOST: localhost | |
- name: Count Tests | |
shell: micromamba-shell {0} | |
run: | | |
pytest --collect-only -qq tests/video_processor | |
pytest --collect-only -q -W ignore::Warning tests/video_processor | head -n -2 | wc -l | |
pytest --collect-only -q -W ignore::Warning tests/video_processor | head -n -2 | wc -l &> test-count | |
env: | |
AP_PORT: 25440 | |
AP_HOST: localhost | |
- name: Unit Test | |
shell: micromamba-shell {0} | |
run: pytest --cov=spatialyze --cov-report=xml -vv tests/video_processor | |
env: | |
AP_PORT: 25440 | |
AP_HOST: localhost | |
- uses: actions/upload-artifact@v3 | |
with: | |
name: video-processor-coverage | |
path: ./coverage.xml | |
- uses: actions/upload-artifact@v3 | |
with: | |
name: video-processor-count | |
path: ./test-count | |
- name: Commit formatted changes | |
if: ${{ env.GENERATE_PROCESSOR_TEST_RESULTS == 'true' }} | |
run: ./scripts/commit-and-push.sh "[CI] update video processor tests" | |
test-engine-and-interface: | |
name: Test Engine and Interface | |
runs-on: ubuntu-latest | |
services: | |
db: | |
image: postgis/postgis:16-3.4 | |
env: | |
POSTGRES_PASSWORD: postgres | |
ports: | |
- 25440:5432 | |
options: >- | |
--health-cmd pg_isready | |
--health-interval 10s | |
--health-timeout 5s | |
--health-retries 5 | |
db-road-1: | |
image: postgis/postgis:16-3.4 | |
env: | |
POSTGRES_PASSWORD: postgres | |
ports: | |
- 25441:5432 | |
options: >- | |
--health-cmd pg_isready | |
--health-interval 10s | |
--health-timeout 5s | |
--health-retries 5 | |
db-road-2: | |
image: postgis/postgis:16-3.4 | |
env: | |
POSTGRES_PASSWORD: postgres | |
ports: | |
- 25442:5432 | |
options: >- | |
--health-cmd pg_isready | |
--health-interval 10s | |
--health-timeout 5s | |
--health-retries 5 | |
db-reset: | |
image: postgis/postgis:16-3.4 | |
env: | |
POSTGRES_PASSWORD: postgres | |
ports: | |
- 25443:5432 | |
options: >- | |
--health-cmd pg_isready | |
--health-interval 10s | |
--health-timeout 5s | |
--health-retries 5 | |
db-import: | |
image: postgis/postgis:16-3.4 | |
env: | |
POSTGRES_PASSWORD: postgres | |
ports: | |
- 25444:5432 | |
options: >- | |
--health-cmd pg_isready | |
--health-interval 10s | |
--health-timeout 5s | |
--health-retries 5 | |
db-sql: | |
image: postgis/postgis:16-3.4 | |
env: | |
POSTGRES_PASSWORD: postgres | |
ports: | |
- 25445:5432 | |
options: >- | |
--health-cmd pg_isready | |
--health-interval 10s | |
--health-timeout 5s | |
--health-retries 5 | |
steps: | |
- name: Checkout | |
uses: actions/checkout@v3 | |
with: | |
token: ${{ secrets.GH_PAT || github.token }} | |
- name: Setup Micromamba | |
uses: mamba-org/setup-micromamba@v1 | |
with: | |
environment-name: spatialyze | |
create-args: >- | |
-c conda-forge | |
python=3.10 | |
poetry=1.5.1 | |
init-shell: none | |
cache-downloads: false | |
- name: Check Python Versions | |
shell: micromamba-shell {0} | |
run: | | |
python --version | |
python3 --version | |
which python | |
which python3 | |
which pip | |
which pip3 | |
which poetry | |
- name: Install Dependencies | |
shell: micromamba-shell {0} | |
run: poetry install --no-interaction --without dev,cv --with test | |
- name: Check Installed Packages | |
shell: micromamba-shell {0} | |
run: pip list | |
- name: Extend MobilityDB with User-Defined functions | |
shell: micromamba-shell {0} | |
run: | | |
pushd scripts/pg-extender | |
python ../generate_pg_extender.py | |
cat install.sql | |
psql -h localhost -p 25440 -d postgres -U postgres -c "SET client_min_messages TO WARNING;" -c "\i install.sql;" | |
psql -h localhost -p 25441 -d postgres -U postgres -c "SET client_min_messages TO WARNING;" -c "\i install.sql;" | |
psql -h localhost -p 25442 -d postgres -U postgres -c "SET client_min_messages TO WARNING;" -c "\i install.sql;" | |
psql -h localhost -p 25443 -d postgres -U postgres -c "SET client_min_messages TO WARNING;" -c "\i install.sql;" | |
psql -h localhost -p 25444 -d postgres -U postgres -c "SET client_min_messages TO WARNING;" -c "\i install.sql;" | |
popd | |
env: | |
PGPASSWORD: postgres | |
- name: Ingest data | |
shell: micromamba-shell {0} | |
run: | | |
python ./scripts/ingest_road.py | |
python ./scripts/import_tables.py | |
env: | |
AP_PORT: 25440 | |
AP_HOST: localhost | |
- name: Generate Image data | |
shell: micromamba-shell {0} | |
run: python scripts/fake-images.py | |
- name: Count Tests | |
shell: micromamba-shell {0} | |
run: | | |
pytest --collect-only -qq tests/engine tests/interface | |
pytest --collect-only -q -W ignore::Warning tests/engine tests/interface | head -n -2 | wc -l | |
pytest --collect-only -q -W ignore::Warning tests/engine tests/interface | head -n -2 | wc -l &> test-count | |
env: | |
AP_PORT: 25440 | |
AP_PORT_ROAD_1: 25441 | |
AP_PORT_ROAD_2: 25442 | |
AP_PORT_RESET: 25443 | |
AP_PORT_IMPORT: 25444 | |
AP_PORT_SQL: 25445 | |
AP_HOST: localhost | |
- name: Unit Test | |
shell: micromamba-shell {0} | |
run: pytest --cov=spatialyze --cov-report=xml -vv tests/engine tests/interface | |
env: | |
AP_PORT: 25440 | |
AP_PORT_ROAD_1: 25441 | |
AP_PORT_ROAD_2: 25442 | |
AP_PORT_RESET: 25443 | |
AP_PORT_IMPORT: 25444 | |
AP_PORT_SQL: 25445 | |
AP_HOST: localhost | |
- uses: actions/upload-artifact@v3 | |
with: | |
name: engine-and-interface-coverage | |
path: ./coverage.xml | |
- uses: actions/upload-artifact@v3 | |
with: | |
name: engine-and-interface-count | |
path: ./test-count | |
upload-coverage: | |
name: Upload Coverage | |
needs: [test-video-processor, test-engine-and-interface, test-workflow] | |
runs-on: ubuntu-latest | |
steps: | |
- name: Download Coverage | |
uses: actions/download-artifact@v3 | |
- name: Upload to Codecov | |
uses: codecov/codecov-action@v3 | |
with: | |
token: ${{ secrets.CODECOV_TOKEN }} | |
verbose: true | |
# - name: Download Coverage | |
# uses: actions/download-artifact@v3 | |
# with: | |
# name: video-processor-coverage | |
# path: ./video-processor-coverage | |
# - name: Download Coverage | |
# uses: actions/download-artifact@v3 | |
# with: | |
# name: engine-and-interface-coverage | |
# path: ./engine-and-interface-coverage | |
# - name: Combine Coverage | |
# shell: micromamba-shell {0} | |
# run: | | |
# pip install coverage | |
# coverage combine ./video-processor-coverage ./engine-and-interface-coverage | |
# coverage xml | |
# coverage report | |
# coverage html | |
# coverage-badge -o coverage.svg -f | |
# - name: Upload Coverage | |
# uses: actions/upload-artifact@v3 | |
# with: | |
# name: coverage | |
# path: ./coverage.xml | |
# - name: Upload Coverage | |
# uses: actions/upload-artifact@v3 | |
# with: | |
# name: coverage-badge | |
# path: ./coverage.svg | |
test-count: | |
name: Test Count | |
needs: [test-video-processor, test-engine-and-interface, test-workflow] | |
runs-on: ubuntu-latest | |
steps: | |
- name: Download Count | |
uses: actions/download-artifact@v3 | |
with: | |
name: video-processor-count | |
path: ./video-processor-test-count | |
- name: Download Count | |
uses: actions/download-artifact@v3 | |
with: | |
name: engine-and-interface-count | |
path: ./engine-and-interface-test-count | |
- name: Download Count | |
uses: actions/download-artifact@v3 | |
with: | |
name: workflow-count | |
path: ./workflow-test-count | |
- name: Combine Counts | |
run: | | |
cat ./video-processor-test-count/* ./engine-and-interface-test-count/* ./workflow-test-count/* | awk '{s+=$1} END {print s}' &> test-count | |
echo "Total tests: $(cat test-count)" | |
- name: Download Count Badge | |
run: | | |
curl -o ./test-count-badge.svg https://img.shields.io/badge/$(cat test-count | tr -d " \t\n\r")-4572a1.svg?label=Test%20Count\&style=for-the-badge | |
rm -rf ./*test-count | |
- name: Deploy | |
uses: exuanbo/actions-deploy-gist@v1 | |
with: | |
token: ${{ secrets.GIST_PAT }} | |
gist_id: b32bb8bf89a237c0f13da5e17abc1cd9 | |
file_path: test-count-badge.svg | |
file_type: text |