Skip to content

Merge pull request #6 from AIDEdgeInc-Lab/docs/sync-pypi-description-… #11

Merge pull request #6 from AIDEdgeInc-Lab/docs/sync-pypi-description-…

Merge pull request #6 from AIDEdgeInc-Lab/docs/sync-pypi-description-… #11

Workflow file for this run

name: CI
on:
pull_request:
push:
branches: [main]
permissions:
contents: read
jobs:
test:
name: Test (Python ${{ matrix.python-version }})
runs-on: ubuntu-latest
strategy:
fail-fast: false
matrix:
python-version: ["3.9", "3.10", "3.11", "3.12"]
steps:
- uses: actions/checkout@v7
- name: Set up Python ${{ matrix.python-version }}
uses: actions/setup-python@v7
with:
python-version: ${{ matrix.python-version }}
- name: Install package with dev dependencies
run: pip install -e ".[dev]"
- name: Run test suite
run: pytest -v
test-without-optional-extras:
name: Test with only hard dependencies (no Dask, no Prometheus)
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v7
- uses: actions/setup-python@v7
with:
python-version: "3.12"
- name: Install package with only hard runtime dependencies + pytest
run: pip install -e . pytest
- name: Run test suite, skipping tests that need optional extras
run: pytest -v --ignore=tests/test_metrics_adapter.py
build:
name: Build and verify distribution
runs-on: ubuntu-latest
needs: test
steps:
- uses: actions/checkout@v7
- name: Set up Python
uses: actions/setup-python@v7
with:
python-version: "3.12"
- name: Install build tooling
run: pip install build twine
- name: Build wheel and sdist
run: python -m build
- name: Verify package metadata (twine check)
run: twine check dist/*
- name: Inspect wheel contents
run: |
python -m zipfile --list dist/*.whl
- name: Install built wheel into a clean environment and import it
run: |
python -m venv /tmp/clean-install-test
/tmp/clean-install-test/bin/pip install dist/*.whl
/tmp/clean-install-test/bin/python -c "import aei_3gpp_kpi_validator; print(aei_3gpp_kpi_validator.__version__)"
- name: Upload build artifacts
uses: actions/upload-artifact@v7
with:
name: dist
path: dist/
retention-days: 7
# NOTE: this workflow intentionally does not publish anything. There is
# no publish/release job here, and no PyPI token or trusted-publishing
# step is configured. Publishing must remain a separate, explicitly
# approved, manually-triggered workflow - see SECURITY.md and
# CONTRIBUTING.md.