Skip to content

.

. #846

Workflow file for this run

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