on: push: pull_request: branches: - main name: GNPY-API-CI jobs: linters: name: Lint Code runs-on: ubuntu-latest steps: - uses: actions/checkout@v3 with: fetch-depth: 0 - name: Set up Python uses: actions/setup-python@v4 with: python-version: '3.10' - name: Install dependencies run: | pip install tox - name: Run linters run: | tox -e linters build: name: Tox test runs-on: ubuntu-latest steps: - uses: actions/checkout@v3 with: fetch-depth: 0 - uses: fedora-python/tox-github-action@v37.0 with: tox_env: ${{ matrix.tox_env }} dnf_install: ${{ matrix.dnf_install }} - uses: codecov/codecov-action@v3.1.1 if: ${{ endswith(matrix.tox_env, '-cover') }} with: files: ${{ github.workspace }}/cover/coverage.xml strategy: fail-fast: false matrix: tox_env: - py38 - py39 - py310 - py311 - py312-cover include: - tox_env: docs dnf_install: graphviz release-build: runs-on: ubuntu-latest needs: build if: ${{ github.event_name == 'push' && startsWith(github.ref, 'refs/tags/v') && github.repository_owner == 'Telecominfraproject' }} steps: - uses: actions/checkout@v4 - uses: actions/setup-python@v5 with: python-version: "3.12" - name: build release distributions run: | python -m pip install build python -m build - name: upload windows dists uses: actions/upload-artifact@v4 with: name: release-dists path: dist/ pypi-publish: runs-on: ubuntu-latest needs: - release-build permissions: id-token: write steps: - name: Retrieve release distributions uses: actions/download-artifact@v4 with: name: release-dists path: dist/ - name: Publish release distributions to PyPI uses: pypa/gh-action-pypi-publish@release/v1 other-platforms: name: Tests on other platforms runs-on: ${{ matrix.os }} steps: - uses: actions/checkout@v3 with: fetch-depth: 0 - uses: actions/setup-python@v4 with: python-version: ${{ matrix.python_version }} - run: | pip install --editable .[tests] pytest -vv strategy: fail-fast: false matrix: include: - os: windows-2022 python_version: "3.11" - os: windows-2022 python_version: "3.12" - os: windows-2025 python_version: "3.11" - os: windows-2025 python_version: "3.12" - os: macos-13 python_version: "3.12" - os: macos-14 python_version: "3.12" - os: macos-15 python_version: "3.12" paywalled-platforms: name: Tests on paywalled platforms if: github.repository_owner == 'Telecominfraproject' runs-on: ${{ matrix.os }} steps: - uses: actions/checkout@v3 with: fetch-depth: 0 - uses: actions/setup-python@v4 with: python-version: ${{ matrix.python_version }} - run: | pip install --editable .[tests] pytest -vv strategy: fail-fast: false matrix: include: - os: macos-13-xlarge # Apple M1 CPU python_version: "3.12"