Skip to content

fix: source getAirports() from the airports JSON feed #581

fix: source getAirports() from the airports JSON feed

fix: source getAirports() from the airports JSON feed #581

Workflow file for this run

name: Python Package
on:
push:
branches:
- main
paths:
- 'python/**'
- '.github/workflows/python-package.yml'
pull_request:
paths:
- 'python/**'
- '.github/workflows/python-package.yml'
schedule:
- cron: '0 0 */7 * *'
workflow_dispatch:
jobs:
build:
runs-on: ubuntu-latest
strategy:
fail-fast: false
matrix:
python-version: ['3.10', '3.11', '3.12', '3.13']
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: |
python -m pip install --upgrade pip
pip install -e "./python[tests]"
pip install flake8 mypy build pytest-cov pip-audit
- name: Lint
run: cd python && python -m flake8 FlightRadarAPI FlightRadar24 tests
- name: Type check
run: cd python && python -m mypy FlightRadarAPI --ignore-missing-imports
- name: Offline tests (PR gate)
run: cd python && pytest -m "not integration" --cov=FlightRadarAPI --cov-report=term --cov-report=xml -v
- name: Integration tests (live FR24)
uses: nick-fields/retry@v3
with:
timeout_minutes: 10
max_attempts: 3
command: cd python && pytest -m integration -vv -s
continue-on-error: ${{ github.event_name == 'push' }}
- name: Dependency audit (informational)
# Informational only: surfaces vulnerable transitive deps as a soft-fail
# without blocking PRs. Re-enable enforcement (drop continue-on-error)
# once the audit baseline is clean.
if: matrix.python-version == '3.13'
continue-on-error: true
run: pip-audit --skip-editable -r <(pip freeze | grep -v "^FlightRadarAPI")
- name: Build and verify install
run: |
python -m build ./python
pip install python/dist/*.whl --force-reinstall
python -c "from FlightRadarAPI import FlightRadar24API; api = FlightRadar24API(); print('Install OK')"